Django查询:如何使用过滤计数进行注释?

时间:2010-08-18 08:45:48

标签: sql django django-queryset

假设我有一个Book模型,其中包含语言字段和Publisher模型的外键。

目前,我在自定义发布商管理器中使用Count注释,以允许我向管理员添加一个可排序列,其中包含每个发布者的图书数量。 (见How to add a sortable count column to the Django admin of a model with a many-to-one relation?

我现在的问题是,我需要为每种语言发布的图书使用不同的列数。

有没有办法让注释服从相关模型的过滤器?

1 个答案:

答案 0 :(得分:0)

为此,您可以使用双下划线__。这样的事情(从OP链接的问题片段):

class PublisherManager(models.Manager):
    def get_query_set(self):
        return super(PublisherManager,self).get_query_set().annotate(lang_count=Count('book__language'))