【问题标题】:Django: Group Counts on Foreign KeysDjango:外键的组计数
【发布时间】:2014-06-08 00:03:32
【问题描述】:

我是 Django 新手,从 PHP 过渡。我有以下查询来列出作为另一个表的外键的分组变量的前十个计数。

Model.objects.values('group').annotate(count = Count('group')).order_by('-count')[:10]

数据用于模板,详细说明“联盟”。打印到模板时,我想列出组的可读名称,而不是整数外键值。在查询中使用 values() 会返回一个字典而不是一个对象,这是我以前用于处理外键的方法失败了。提前致谢!

【问题讨论】:

    标签: python sql django


    【解决方案1】:

    使用 values() 查询集函数,您可以通过以下方式拉取外键模型的字段:

    .values('foreign__field')

    参考您的示例,并假设您的 Group 模型具有“名称”字段,您可以使用:

    Model.objects.values('group', 'group__name')...

    如果您将该字典传递给模板,那么您可以参考'group__name' 键:

    {% for g in groups %} {{ g.group__name }}

    【讨论】:

    • 谢谢,根据我对 Django 的有限了解,我怀疑这将是一个简单的解决方案!这对我有帮助。
    • 当您在那里时,是否有类似的方法可以访问字段的“选择”值?
    猜你喜欢
    • 2021-04-29
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 2019-06-29
    • 2021-10-08
    • 1970-01-01
    相关资源
    最近更新 更多