【问题标题】:Django object_name rendering in template模板中的 Django object_name 渲染
【发布时间】:2016-07-10 10:31:53
【问题描述】:

我看过一个关于此的 SO 帖子,但似乎找不到。

我的结果在我的模板中呈现,其中 object_name 为
{'sessions__sum': 29649}

而不仅仅是
29649.

我怎样才能只显示总和?谢谢你。

更新

我意识到,由于缺乏知识,我可能没有正确地提出我的问题,所以下面是我的视图和我的模板的屏幕截图,在浏览器中呈现。希望这将有助于解决问题。

查看

year_weekly_filter.filter(created__week_day=1).aggregate(Sum('sessions'))
monday2014 = year_weekly_filter.filter(created__week_day=2).aggregate(Sum('sessions'))

模板

{{ monday2014 }}

ScreenShot - 它在浏览器中的呈现方式

【问题讨论】:

  • 如果您要投反对票,那么您应该提供一些专业且有用的反馈。如果不是我,至少对于可能看到这篇文章的其他用户来说。

标签: django django-templates django-views


【解决方案1】:

您的意思是模板中的{{object}} 是由字典对象呈现的吗? 在这种情况下,以这种方式访问​​密钥。

{{object.sessions__sum}}

您可以通过this 获得帮助,相关文档为here

我没有足够的积分来添加评论,所以我在这里留下我的猜测。

【讨论】:

    【解决方案2】:

    您应该注意:“aggregate() 是 QuerySet 的终止子句,当调用它时,返回名称-值对的字典。” - Django 文档
    如果您只想将单个值返回给变量而不是字典,请像这样使用 .get:

    monday2014 = year_weekly_filter.filter(created__week_day=2).aggregate(Sum('sessions')).get('sessions__sum',0)
    

    【讨论】:

    • 我已经敲了一天的脑袋想弄明白……只是不知道怎么问这个问题。谢谢!!!
    • 没问题!我最近在自己的工作中遇到了这个问题,并对此感到困惑,返回一个用于在单个查询中创建多个聚合的 dict 是有意义的。
    猜你喜欢
    • 2022-07-22
    • 2018-05-20
    • 2018-11-05
    • 2013-10-10
    • 2012-03-18
    • 2017-05-25
    • 2015-09-17
    • 2020-02-10
    • 2016-05-22
    相关资源
    最近更新 更多