如何控制视图类查询集中的项目?
问题描述:
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')
谢谢,这是有效的。 – ArdentLearner