【发布时间】:2021-07-12 20:43:42
【问题描述】:
所以基于这个 Stack Overflow 问题:
Getting random object of a model with django-rest-framework
我正试图弄清楚如何做到这一点,但在应用过滤器后端之后。
我有这个类和这些方法
class DictionaryRandomView(generics.ListAPIView):
def get_queryset(self):
return Dictionary.objects.all()
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.get_serializer(queryset, many=True)
return Response(serializer.data)
还有几个过滤器后端(如果需要,可以包括)。
问题是我需要在查询之前应用过滤器后端。
我应该在 list 方法还是 get_queryset 方法中执行此操作?
例如,我有与字典相关的级别(用于学习语言)。
我想将我的查询限制为只有级别 6 的单词,然后在该集合中获取随机值(我可以作为过滤器传递的动态数字)。
所以我想要做的伪代码是这样的:
get_random_value("SELECT * FROM dictionary WHERE level = 6")
如何在 DRF listAPIView 中做到这一点?
【问题讨论】:
标签: python django django-rest-framework