私は、ユーザが複数の年齢範囲(18-24,25-34,35-44など)でユーザを選択できるようにするフォームを持っています。現在、ユーザが最初の2つのフィールド複数の選択リストのクエリではユーザー18〜34が返されます。ユーザーが18〜24歳と35〜44歳を選択した場合、18歳から44歳までのすべての年齢が含まれます。 -34。Djangoは未知数の複数の日付範囲を照会します
ユーザーフォームの選択に先立ってフィルタリングする必要がある範囲の数を知らずに、クエリで複数の範囲フィルタを含めるアプローチはどうでしょうか?
あなたは年齢の番号範囲をユーザーがIでフィルタするつもりだった知っていた場合はこれが私の現在のクエリですQ.
を使用して、あなたは可能性がチェーンの範囲クエリを知っている:事前に
query = User.objects.filter(
gender__in=genders,
created__in=dates,
data_source__in=sources,
dob__range=[dob_from, dob_to]
)
感謝。
ブリリアント!完璧に動作します。今、or_を減らして作業を減らす方法を見てみましょう。 – Theo
あなたがしたくない場合は 'reduce'を使う必要はありません。リストをループして' Q() 'を生成することができます。 – Alasdair