如何从django-filter的generic.ListAPIView类内部获取请求对象?

问题描述 投票:0回答:1

我有一个使用djangorestframework运行的django-filter查询。下面的视图函数用于url。但是,当我在一开始就获得对象时,我不仅希望通过搜索查询具有的参数(用户名和用户ID)来过滤它们。但是我也想根据登录的人进行过滤,我可以通过URL的请求对象来获取。

函数getUsername()独立工作,但不能与其他代码一起工作。

因此有一种方法可以在下面的代码中访问自我请求。非常感谢您的帮助。

class userSearch(generics.ListAPIView):

    def getUsername(self):
        return self.kwargs['username']

    serializer_class = UserSerializer
    queryset = UserProfile.objects.filter(professor=User.objects.get(username=self.getUsername()).id).order_by('username')
    filter_backends = (DjangoFilterBackend,SearchFilter)
    filter_fields = (username,userid,userType)
    search_fields = ('username', 'first_name')
python-3.x django-rest-framework django-filter
1个回答
1
投票

代替直接定义queryset属性,您可以覆盖get_queryset(self)方法:

© www.soinside.com 2019 - 2024. All rights reserved.