Django Filter で OR ステートメントを作成する方法を知っている人はいますか? Q オブジェクトを使用する必要があるかどうかはわかりません。ある種の OR パイプが必要だと思いましたが、これは正しくないようです。
filter_mfr_method = request.GET.getlist('filter_mfr_method')
for m in filter_mfr_method:
designs = designs.filter(Q(mfr_method = m) | m if m else '')
# Or should I do it this way?
#designs = designs.filter(mfr_method = m | m if m else '')
私はこれが欲しい:
SELECT * FROM table WHERE mfr_method = 1 OR mfr_method = 2 OR mfr_method = 3
編集:これが機能したものです
filter_mfr_method = request.GET.getlist('filter_mfr_method')
list = []
for m in filter_mfr_method:
list.append(Q(mfr_method = m))
designs = designs.filter(reduce(operator.or_, list))