ジャンゴ:OR複数の文で

デビッド・アルバレス:

私は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)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=14898&siteId=1