代码之家  ›  专栏  ›  技术社区  ›  thornomad

按通用外键(django)对查询集排序?

  •  4
  • thornomad  · 技术社区  · 14 年前

    我使用的是Django的注释框架,它使用通用的外键。

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

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

    Django的数据库聚合API不适用于泛型关系。[…]现在,如果需要对泛型关系进行聚合,则需要在不使用聚合API的情况下计算它们。

    不过,我唯一能想到的方法是迭代我的查询集,生成一个列表 content_type object_id 对于每个项,然后对按此列表筛选的注释模型运行第二个查询集 内容类型 对象编号 …按计数对对象排序,然后通过拖动 content_object 对于每个注释…

    这似乎是错误的,我甚至不知道该怎么办。

    思想?一定有人以前做过。

    我发现 this post 但它需要我手写SQL——这真的有必要吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Steve Jalim    14 年前

    你在链接到你问题的博客文章中找到的方法就是我做它的方式(实际上,几乎就像我在本周早些时候自己的一个项目中做的那样)。