无法解析超链接关系的URL

时间:2015-09-12 14:40:21

标签: python django django-rest-framework

看到很多关于类似问题的帖子,要么不是很清楚,要么我无法理解,所以再次在这里发布我的问题。

我还有很多其他'xxxList'和'xxxDetail',一切正常,除了这个例外:

  

无法使用视图名称解析超链接关系的URL   “用户信息细节”。您可能未能在其中包含相关模型   您的API,或者lookup_field属性配置不正确   这个领域。

模型

class UserInfo(models.Model):
    # extend Django user object
    user = models.ForeignKey(User, related_name='parkingUser')

串行器:

class UserInfoSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = UserInfo

class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'is_staff', 'is_active', 'date_joined')

查看:

class UserInfoList(generics.ListCreateAPIView):
    queryset = UserInfo.objects.all()
    serializer_class = UserInfoSerializer
    permission_classes = (permissions.IsAuthenticated,)

    def perform_create(self, serializer):
        serializer.save(user=self.request.user)

class UserInfoDetail(generics.RetrieveAPIView):
    queryset = UserInfo.objects.all()
    serializer_class = UserInfoSerializer
    permission_classes = (permissions.IsAuthenticated, )    

class UserList(generics.ListCreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    permission_classes = (permissions.IsAuthenticated, )

class UserDetail(generics.RetrieveAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    permission_classes = (permissions.IsAuthenticated, IsSuperUsersGroupOrDeny)

App Url:

 url(r'^usersInfo/$', views.UserInfoList.as_view(), name='userInfo-list'),
 url(r'^usersInfo/(?P<pk>[0-9]+)/$', views.UserInfoDetail.as_view(), name='userInfo-detail'),
 url(r'^users/$', views.UserList.as_view(), name='user-list'),
 url(r'^users/(?P<pk>[0-9]+)/$', views.UserDetail.as_view(), name='user-detail'),

我几乎删除了所有用于测试的逻辑代码,它不再简单,仍然是同样的例外,奇怪的是如果我在浏览器中使用标准url测试'userInfoDetail',如:

  

http://rest.myDomain.xxx:8090/usersInfo/replaceWithIntegerNumber/

其中一些返回相同的错误,其中一些返回

  

{       “细节”:“没找到。” }

这里有什么问题?

1 个答案:

答案 0 :(得分:2)

我可能错了,但问题似乎是usersInfo网址中的首都“我”。请尝试name='userinfo-list'name='userinfo-detail',而不是name='userInfo-list'name='userInfo-detail'