Django 查询空 related_set
Django query on empty related_set
我有两个具有 1-to-Many 关系的模型 - parent 和 child。我想查询所有 parent 没有 children。在 SQL 我会做这样的事情:
SELECT p.*
FROM parent p
LEFT JOIN children c on (p.id=c.parent_id)
WHERE c.id IS NULL
如何对单个 Django 查询执行相同的操作?
模型的相关部分是:
class Parent(model):
...
class Child(model):
parent = ForeignKey(Parent, related_name='children')
使用 isnull
字段查找,其中:
Takes either True or False, which correspond to SQL queries of IS NULL and IS NOT NULL, respectively.
因此,查询集将如下所示:
Parent.objects.filter(children__isnull=True)
我有两个具有 1-to-Many 关系的模型 - parent 和 child。我想查询所有 parent 没有 children。在 SQL 我会做这样的事情:
SELECT p.*
FROM parent p
LEFT JOIN children c on (p.id=c.parent_id)
WHERE c.id IS NULL
如何对单个 Django 查询执行相同的操作?
模型的相关部分是:
class Parent(model):
...
class Child(model):
parent = ForeignKey(Parent, related_name='children')
使用 isnull
字段查找,其中:
Takes either True or False, which correspond to SQL queries of IS NULL and IS NOT NULL, respectively.
因此,查询集将如下所示:
Parent.objects.filter(children__isnull=True)