我有三个型号
class A(Model):
...
class B(Model):
id = IntegerField()
a = ForeignKey(A)
class C(Model):
id = IntegerField()
a = ForeignKey(A)
我想要得到 (B.id, C.id) 对,其中 B.a==C.a。如何使用 django orm 进行连接?
Django 允许你反向查找 https://docs.djangoproject.com/en/2.2/topics/db/queries/#lookups-that-span-relationships与您可以使用的方式进行正向查找大致相同__
:
它也可以向后工作。要引用“反向”关系,只需使用模型的小写名称即可。
此示例检索所有Blog
至少有一个标题包含“列侬”的条目的对象:
Blog.objects.filter(entry__headline__contains='Lennon')
我认为你可以做这样的事情,@Daniel Roseman 对你将返回的结果集类型的警告。
ids = B.objects.prefetch_related('a', 'a__c').values_list('id', 'a__c__id')
如果内存可用的话,预取相关将有助于提高旧版本 django 的性能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)