Django休息框架;向经过验证的匿名用户显示不同的内容

时间:2018-02-20 10:34:01

标签: django django-rest-framework

我尝试为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语句。 我有什么想法可以轻松地做到这一点吗?

由于

1 个答案:

答案 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