すばやくこれを行う方法があるかどうかわかりませんが、5つのパラメータから6つのパラメータに基づいて検索します「入力」を選択し、もう1つを「入力」テキストから選択すると、より多くのオプションが選択されたときに検索がより具体化する必要があります。パラメータがDjangoに存在する場合にのみクエリーセットで(&)を使用
ルックアップでこれを行う方法はありますか?または、パラメータの組み合わせごとにif
を作成する必要がありますか? ifのすべてを書かなければならない場合、より効率的な方法は何ですか?すべての組み合わせをカバーするために2^6
if
の文を実行しなければならない場合、それは少し遅くなります。パラメータには特定の順序がないので、任意の組み合わせが可能であると考えてください。
私はQ objects
で考えていましたが、それが機能するかどうかわかりませんが、ORサテライト用にしか使用していませんでしたが、and
ステートメントにも使用できることがわかりましたが、 comma
を使用する場合とは異なります。おそらくこのような何か:
result = Product.objects.filter(Q(field1=param1)&Q(field2=param2)&Q(field3=param3)&Q(field4=param4)&Q(field5=param5)&Q(field6=param6))
私はそれが分かりませんでした、それは、ありがとうございました。 – elG