通过通用外键(django)对queryset进行排序?

我正在使用Django的评论框架,该框架使用通用外键.

问题:如何使用通用外键查找按注释计数对给定模型的查询集进行排序?

阅读django docs on the subject,它说需要计算它们而不是使用聚合API:

Django’s database aggregation API doesn’t work with a GenericRelation. […] For now, if you need aggregates on generic relations, you’ll need to calculate them without using the aggregation API.

但是,我能想到的唯一方法是遍历我的查询集,为每个项生成一个包含content_type和object_id的列表,然后在Comment模型上运行第二个查询集,通过这个content_type和object_id列表进行筛选… sort按计数对象,然后通过为每个注释拉出content_object,按此顺序重新创建一个新的查询集…

这似乎是错误的,我甚至不知道如何把它拉下来.

想法?有人必须先做过这件事.

我在网上找到了this post,但它需要我手写SQL – 真的有必要吗?

最佳答案 您在问题中链接的博客文章中找到的方式就是我这样做的方式(实际上,就像我本周早些时候在我自己的一个项目中所做的那样)

点赞