2016-10-24 63 views
1

有一个路由器:Django的REST列表只(无详细信息)视图集中

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

而且一个视图集:

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 /用户/” 它会向用户显示名单。当我去“休息/用户/ 1” - 它显示一些用户的细节。

现在我想创建一个/员工只读资源,它扩展了用户,但只显示列表(键入像“/ employees/1”显示Django 404)。

解决方案的尝试:

1)覆盖get_object()并返回HTTP404 - 不工作,它显示了数据,而不是404页REST页。

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

回答

0

你能直接在你的处理函数中继承mixins.ListModelMixin吗?

相关问题