Django Queryset过滤器检查相关对象是否存在

时间:2015-10-17 00:15:57

标签: django python-3.x django-queryset django-1.7

我试图创建一个自定义管理器,它返回所有没有Bar附加到它们的Foo实例。

# models.py
class Foo(models.Model):
    ...

class Bar(models.Model):
    foo = models.OneToOneField(Foo)
    ...

# managers.py
class FooQueryset(BaseQueryset):
    def no_bar(self):
        return ???

class FooManager(BaseManager):
    def get_queryset(self):
        return EcheanceQueryset(self.model, using=self._db)

    def no_bar(self):
        return self.get_queryset().no_bar()

我在查询集中寻求帮助以获得所需的结果

1 个答案:

答案 0 :(得分:1)

尝试

class FooManager(BaseManager):

    def no_bar(self):
        return self.get_queryset().filter(bar__isnull=True)