如何在Django ORM上对非ForeignKey字段执行LEFT OUTER JOIN



我有两种型号:

model A:
name = CharField()
...
model B:
title = CharField(null=True)
...

我想通过";name"="标题";

关于SQL,我是通过得到的

SELECT  "A".* 
FROM "A"
LEFT OUTER JOIN "B"
ON "A"."name" = "B"."title"
WHERE "B"."title" IS NULL

如何使用Django ORM来写这篇文章?

您可以使用一个简单的exclude和一个来自模型B的所有标题的子查询,如下所示:

A.objects.exclude(name__in=B.objects.all().values('title))

最新更新