在Django中,MultipleChoiceField如何与或querys一起使用?

2024-10-01 02:34:51 发布

您现在位置:Python中文网/ 问答频道 /正文

在django中使用MultopleChoiceField时,如何创建对所有选定项的查询?通过使用:

return_queryset = model_name.objects.filter(Q(Column_name=request.POST.getlist('Column_name')[0])|Q(Column_name=request.POST.getlist('Column_name')[1])

它将返回or语句,但前提是您选择了正确的项目数。是否有允许选择任意数量项目的快捷方式?你知道吗

您可以将查询集堆叠在另一个查询集之上,但是有没有一种方法也可以堆叠一个或多个查询集呢?谢谢。你知道吗

Or query

Queryset

Filter


Tags: ordjangonamemodelreturnobjectsrequestcolumn
1条回答
网友
1楼 · 发布于 2024-10-01 02:34:51

要回答有关堆叠or子句的特定问题,在一般情况下,可以使用内置operator模块中|的函数标签组合Q对象。你知道吗

import operator
return_queryset = model_name.objects(filter(reduce(operator.or_,
    (Q(Column_name=name) for name in request.POST.getlist('Column_name')))))

但是对于这个特殊的例子,我会使用in

return_queryset = model_name.objects.filter(Column_name__in=request.POST.getlist('Column_name'))

相关问题 更多 >