在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语句,但前提是您选择了正确数量的项目。是否有一个快捷方式可以选择任意数量的项目?
您可以将查询集堆叠在一起,但是有没有办法堆叠或查询集?感谢。
答案 0 :(得分:1)
回答有关堆叠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'))