2014-07-11 27 views
0

在django中使用MultopleChoiceField時,如何創建所有項目的查詢?通過使用:MultipleChoiceField如何與django一起使用或查詢?

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 query

Queryset

Filter

回答

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')) 
相關問題