Django select_related过滤器

时间:2016-12-02 07:24:37

标签: python django django-queryset

我有以下Django模型。

class A(models.Model):
    tmp = models.ForeignKey(B)
    active = models.BooleanField()

class B(models.Model):
    active = models.BooleanField()
    archived = models.BooleanField()

现在我有以下查询。

A.objects.select_related(B).filter(active=True)

现在,这将获取B的所有对象。现在,如何在模型active=True的{​​{1}}子句中包含archived=Falseselect_related的过滤器。

1 个答案:

答案 0 :(得分:15)

与使用__查找的任何其他相关字段相同。

A.objects.select_related(B).filter(active=True, tmp__active=True, tmp__archived=False)

使用select related不会改变任何内容,其目的是关于结果返回什么信息,它根本不会影响过滤。