【问题标题】:HyperlinkedModelSerializer throwing ImproperlyConfigured error with auth.User in django rest frameworkHyperlinkedModelSerializer 在 django rest 框架中使用 auth.User 引发 ImproperlyConfigured 错误
【发布时间】:2016-05-28 03:18:00
【问题描述】:

我有以下使用 django rest 框架的代码。

urls.py

urlpatterns = [
    url(r'^portfolio1/', include('portfolio1.urls')),
    url(r'^admin/', admin.site.urls),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))]

portfolio1/urls.py

app_name = 'portfolio1'
urlpatterns = [
    url(r'^$', \
            views.api_root),
    url(r'^users/$', \
            views.UserList.as_view(), \
            name='user-list'),
    url(r'^users/(?P<pk>[-\d]+)/$', \
            views.UserDetail.as_view(), \
            name='user-detail'),
]
urlpatterns = format_suffix_patterns(urlpatterns)

portfolio1/serializers.py

from django.contrib.auth.models import User as AuthUser
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = AuthUser
        fields = ('id', 'username', 'url')

portfolio1/views.py

from django.contrib.auth.models import User as AuthUser
class UserList(generics.ListAPIView):
    queryset = AuthUser.objects.all()
    serializer_class = UserSerializer

class UserDetail(generics.RetrieveAPIView):
    queryset = AuthUser.objects.all()
    serializer_class = UserSerializer

@api_view(('GET',))
@permission_classes((permissions.AllowAny, ))
def api_root(request, format=None):
    return Response({
        'users': reverse('user-list', request=request, format=format)
    })

我收到以下错误。

配置不当:无法使用视图名称“用户详细信息”解析超链接关系的 URL。您可能未能在 API 中包含相关模型,或者在此字段上错误地配置了 lookup_field 属性。

我知道错误是什么意思,但不知道为什么我会得到它。它与 django rest 框架(https://github.com/tomchristie/django-rest-framework/issues/2711)的版本控制有什么关系吗?我保证我没有犯和HyperlinkedIdentityField returning error only on User model一样的错误。

【问题讨论】:

  • 你解决了吗?我也面临同样的问题。

标签: python django rest django-rest-framework serialization


【解决方案1】:

删除portfolio1/urls.py中的app_name = 'portfolio1'

【讨论】:

    猜你喜欢
    • 2018-03-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    相关资源
    最近更新 更多