我正在使用Django的评论框架,该框架使用通用外键。
阅读django docs on the subject它说需要使用聚合API计算而不是:
Django的数据库聚合API不适用于GenericRelation。 [...]目前,如果您需要关于泛型关系的聚合,则需要在不使用聚合API的情况下计算它们。
但我能想到的唯一方法是遍历我的查询集,为每个项生成一个包含content_type
和object_id
的列表,然后在Comment上运行第二个查询集通过此content_type
和object_id
列表进行模型过滤...按计数对对象进行排序,然后通过为每个注释提取content_object
来按此顺序重新创建新的查询集。
这似乎是错的,我甚至不确定如何解决它。
想法?有人必须先做过这件事。
我在网上找到了this post,但它需要我手写SQL - 真的有必要吗?
答案 0 :(得分:2)
你在问题中链接的博客文章中找到的方式就是我这样做的方式(实际上,就像我本周早些时候在我自己的一个项目中所做的那样)