デビッド・アルバレス:
私は1つの条件で、時々、オブジェクトを取得したいといくつかの他の時間は、別の条件を追加(OR)。
Laravel(PHP)で、これを行うのは簡単です。
$q = MyModel::where('col1', $val1);
if ($userWantsToAddAnotherOrCondition) {
$q = $q->orWhere('col2', $val2);
}
終わりに、私は条件のいずれかのクエリを持っています'col1' = $va1
か'col1' = $va1 OR 'col2' = $val2
。
ジャンゴ(パイソン)で、私はこの方法を知っています:
q = MyModel.objects.filter(Q(col1=val1) | Q(col2=val2))
どのように私は、第二の条件(追加することができますcol2=val2
別のステートメントでの)?
ウィレム・ヴァン・当社:
あなただけの連鎖できるQ
論理または演算子でオブジェクトを|
。例えば:
cond = Q(col1=val1)
if some_condition:
cond |= Q(col2=val2)
q = MyModel.objects.filter(cond)