如何控制视图类查询集中的项目?

问题描述:

class ModelListCreateView(GetQuerysetMixin, generics.ListCreateAPIView): 
    queryset = get_objects_for_user(self.context['request'].user, 'model.view_model') 
    serializer_class = ModelSerializer 
    permission_classes = (permissions.IsAuthenticated,) 

在上面的代码片段试图让查询只有一个给定的用户应该看到的项目。我试过queryset = get_objects_for_user(request.user, 'model.view_model'),但这没有奏效,导致错误“请求”未定义。谷歌搜索后,尝试我现在​​有什么我得到的错误'自我'没有定义。我也试图在其他权限之上实现django-guardian。如何控制视图类查询集中的项目?

如果您想访问请求对象,则覆盖get_queryset而不是设置queryset

class ModelListCreateView(GetQuerysetMixin, generics.ListCreateAPIView): 
    def get_queryset(self): 
     return get_objects_for_user(self.request.user, 'model.view_model') 
+0

谢谢,这是有效的。 – ArdentLearner