dab*_*aba 2 python django django-1.4
我有一个要根据其属性过滤的模型a。该模型还具有另一个属性b。我正在尝试过滤a为0或a具有b属性值的条目(显然,对于每一行)。如何按另一列的值过滤?
这是我尝试过的,以及缺少的部分:
MyModel.objects.filter(Q(a=0) | Q(a=???)) # ??? is to be the value of the `b` column
Run Code Online (Sandbox Code Playgroud)
我正在使用Django 1.4,我知道它是一个不再受支持的旧版本,但是不幸的是执行升级不适合我。
小智 6
您可以使用 F 模型来比较两个字段。
from django.db.models import F
MyModel.objects.filter(a__exact = F('b'))
Run Code Online (Sandbox Code Playgroud)
因此,对于联合查询,您可以使用类似的内容,
MyModel.objects.filter(Q(a=0) | Q(a__exact=F('b')))
Run Code Online (Sandbox Code Playgroud)
我认为您可以将F表达式与Q对象一起使用:
MyModel.objects.filter(Q(a=0) | Q(a=F('b')))
Run Code Online (Sandbox Code Playgroud)
我还建议您立即安排升级,否则,您将错过其他功能和安全修补程序。