我的主要urls.py位于此处ahlami-> ahlami-> urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('api/accounts/', include('accounts.api.urls')),
]
我的帐户应用程序urls.py位于此处ahlami->帐户-> api-> urls.py
urlpatterns = [
path('users/<int:pk>/', views.UserView.as_view(), name='user-detail')
]
我的其中一个帐户views.py返回
token = Token.objects.create(......)
return Response(data=AnonymousUserTokenResponseSerializer(instance=token).data)
我的令牌模型只有三个字段。为简单起见,我在下面列出了一个字段
class Token(rest_framework.authtoken.models.Token):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE
AnonymousUserTokenResponseSerializer链接到Token模型并返回三个json属性
class AnonymousUserTokenResponseSerializer(serializers.ModelSerializer):
user_id = serializers.ReadOnlyField(source='user.id')
user_url = reverse(viewname='user-detail')
class Meta:
model = Token
fields = ('key',
'user_id',
'user_url')
AnonymousUserTokenResponseSerializer失败,因为它无法识别reverse()
user_url = reverse(viewname='user-detail')
python manage.py runserver由于上面的行而引发以下错误
django.core.exceptions.ImproperlyConfigured:包含的URLconf'ahlami.urls'似乎没有任何模式。如果您在文件中看到有效的模式,则问题可能是由循环导入引起的。
我的设置位于此处ahlami-> ahlami->设置-> base.py,base.py具有此功能
ROOT_URLCONF = 'ahlami.urls'
我期望得到看起来像但由于上述错误而无法显示的输出。
{
"key": "891e388399f2fcae016fe6887107034239041478",
"user_id": 29,
"user_url": http://localhost/api/accounts/users/29
}
如何解决该错误并使reverse()工作?
django.core.exceptions.ImproperlyConfigured:包含的URLconf'ahlami.urls'似乎没有任何模式。如果您在文件中看到有效的模式,则问题可能是由循环导入引起的。
采用 serializers.HyperlinkedIdentityField
class AnonymousUserTokenResponseSerializer(serializers.ModelSerializer):
user_id = serializers.ReadOnlyField(source='user.id')
user_url = serializers.HyperlinkedIdentityField(
view_name='user-detail',
source='user.id',
lookup_field='pk'
)
class Meta:
model = Token
fields = ('key', 'user_id', 'user_url')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句