我想获取一个对象,有时有一个条件,有时添加(或)另一个条件。
使用 Laravel (PHP),这很容易做到:
$q = MyModel::where('col1', $val1);
if ($userWantsToAddAnotherOrCondition) {
$q = $q->orWhere('col2', $val2);
}
最后我有一个条件为 'col1' = $va1
的查询或 'col1' = $va1 OR 'col2' = $val2
.
在Django(python)中,我只知道这样:
q = MyModel.objects.filter(Q(col1=val1) | Q(col2=val2))
如何用另一个语句添加第二个条件(col2=val2
)?
最佳答案
您可以使用逻辑或运算符|
链接Q
对象。例如:
cond = Q(col1=val1)
if <i>some_condition</i>:
<b>cond |=</b> Q(col2=val2)
q = MyModel.objects.filter(cond)
关于python - Django:或与多个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60381674/