使用自定义查询集作为管理器,在自定义筛选方法后再次筛选

时间:2018-03-24 10:17:25

标签: django django-models django-queryset

我有一个自定义QuerySet:

class EntityModelQuerySet(models.query.QuerySet):

    def active(self):
        return self.filter(is_active=True)

在模型中,我发送QuerySet作为管理器:

class Entity(models.Model):
 is_active = models.BooleanField(default=False)
 objects = EntityModelQuerySet.as_manager()

在视图中我尝试:

Entity.objects.active.filter(is_home=True)

它给了我一个错误:

'function' object has no attribute 'filter'

为什么,如何解决?

1 个答案:

答案 0 :(得分:2)

您需要调用active函数来返回查询集,只需添加()

Entity.objects.active().filter(is_home=True)