我在搜索页面的搜索结果一侧有一个搜索字段和两个额外的搜索参数(类别和平台)
我的查询集在列表视图中如下所示:
def get_queryset(self):
query = self.request.GET.get('q')
category = self.request.GET.get('category')
platform = self.request.GET.get('platform')
text_query = (
Q(name__icontains=query) |
Q(category__name__icontains=query) |
Q(tags__name__icontains=query)
)
object_list = Results.objects.all()
if query:
object_list = object_list.filter(
text_query
)
if category:
object_list = object_list.filter(Q(category__name=category))
if platform:
if platform == "windows":
object_list = object_list.select_related('versions').latest().filter(windows=True)
elif platform == "linux":
object_list = object_list.select_related('versions').latest().filter(linux=True)
elif platform == "mac":
object_list = object_list.select_related('versions').latest().filter(mac=True)
return object_list
我知道最后一部分可以是带有exec
的一行,但这不起作用,因为您无法过滤过滤器(object_list
)的结果
基于多个GET
参数进行过滤的最佳方式是什么
目前没有回答
相关问题 更多 >
编程相关推荐