我尝试为Django 2实现rest_framework。 我有一个URL,应该为身份验证的用户显示不同的内容。 匿名用户只会得到一个有限的视图,authentificated将看到一切。 在文档中,我只能使用拒绝所有内容的方法,而不是if else子句。 基本上我尝试这样的事情:
class StoryViewSet(viewsets.ModelViewSet):
if IsAuthenticated == True:
queryset = Story.objects.all()
else:
queryset = Story.objects.filter(story_is_save=True)
serializer_class = StorySerializer
显然,IsAuthenticated不是我可以查询的True / False语句。 我有什么想法可以轻松地做到这一点吗?
由于
答案 0 :(得分:0)
您需要覆盖get_queryset
方法:
class StoryViewSet(viewsets.ModelViewSet):
serializer_class = StorySerializer
def get_queryset(self):
if self.request.user.is_authenticated():
queryset = Story.objects.all()
else:
queryset = Story.objects.filter(story_is_save=True)
return queryset