繁体   English   中英

Django QuerySet:按另一个字段的值过滤

[英]Django QuerySet: filter by the value of another field

我有一个模型,我希望按其属性a过滤。 该模型还有另一个属性b 我试图过滤a为0或a具有b属性值的条目(显然对于每一行)。 如何按另一列的值过滤?

这是我尝试过的,以及缺失的部分:

MyModel.objects.filter(Q(a=0) | Q(a=???)) # ??? is to be the value of the `b` column

我正在使用Django 1.4,我知道它是一个不再受支持的旧版本,但遗憾的是执行升级并不适合我。

我想你可以在Q对象中使用F表达式

MyModel.objects.filter(Q(a=0) | Q(a=F('b')))

我还建议您现在安排升级,否则,您将错过其他功能和安全修复程序。

您可以使用F模型比较两个字段。

from django.db.models import F
MyModel.objects.filter(a__exact = F('b'))

所以对于你的联合查询,你可以使用类似的东西,

MyModel.objects.filter(Q(a=0) | Q(a__exact=F('b')))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM