作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 djangorestframework 运行的 django-filter 查询。下面的 View 函数用于 url。但是当我一开始就得到对象时,我不仅想通过搜索查询具有的参数(用户名和用户标识)来过滤它们。但我也想根据登录者进行过滤,我可以通过来自 URL 的请求对象获得。
函数 getUsername() 独立工作,但不与其他代码一起工作。
因此有一种方法可以在下面的代码中访问 self 请求。非常感谢任何帮助。
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')
最佳答案
您可以覆盖 get_queryset(self)
,而不是直接定义 queryset
属性方法:
class userSearch(generics.ListAPIView):
serializer_class = UserSerializer
filter_backends = (DjangoFilterBackend, SearchFilter)
filter_fields = ('username', 'userid')
search_fields = ('username', 'first_name')
def get_queryset(self):
username = self.kwargs['username']
professor = User.objects.get(username=username)
# Here you can do the following thing:
current_user = self.request.user
# And use it as you wish in the filtering below:
return UserProfile.objects.filter(professor=professor).order_by('username')
关于python-3.x - 如何从 django-filter 的 generic.ListAPIView 类中获取请求对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56958914/
我是一名优秀的程序员,十分优秀!