2016-02-14 50 views
0

我有兩個模型與一對多的關係 - 父母和孩子。我想查詢所有沒有孩子的父母。在SQL中,我會做這樣的事情:關於Django查詢empty related_set

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') 
+0

你可以爲你的模型的代碼? – iulian

+0

提供了相關位。這是微不足道的。 – zmbq

回答

3

使用isnull現場查找,其中:

或者取,其對應於SQL查詢IS NULLIS NOT NULL

因此,查詢集將如下所示:

Parent.objects.filter(children__isnull=True)