Django REST仅限列表(无详细信息)ViewSet

时间:2016-10-24 16:52:45

标签: python django python-2.7 rest

有路由器:

router.register('users', UsersViewSet, base_name='users')

和ViewSet:

class UserViewSet(viewsets.ReadOnlyModelViewSet):
    def get_queryset(self):
        return self.get_object_list()

    def get_object(self):
        for input in self.get_object_list():
            if input.id == self.kwargs['pk']:
                self.check_object_permissions(self.request, input)
                return input

        raise MyCustomNotFound()

当我去" / rest / users /"它显示用户列表。当我去的时候"休息/用户/ 1" - 它显示了某些用户的详细信息。

现在我想创建一个/ employees只读资源,它扩展了User,但只显示了list(键入类似" / employees / 1"显示Django 404)。

尝试解决方案:

1)覆盖get_object()并返回Http404 - 没有工作它显示REST页面包含数据而不是404页面。

2)在路由器文件中使用http://www.django-rest-framework.org/api-guide/viewsets/#readonlymodelviewset - user_list = UserViewSet.as_view({'get': 'list'})中描述的内容 - 不起作用。

1 个答案:

答案 0 :(得分:0)

您是否可以直接在处理函数中继承mixins.ListModelMixin