无法解析模板中的剩余部分

0 投票
2 回答
5085 浏览
提问于 2025-04-17 10:34

这是我的DjangoTemplates/(mysite)/index.html。我想在index.html里做一些数学运算。我想在循环中显示每个用户的总赢得金额,也就是所有Stakes.amount_won的总和。我觉得我的数学语法写得没问题,但在模板中似乎没有效果。

这个循环应该遍历每个用户的名字,并把他们的名字显示为一个链接,下面显示他们赢得的金额总和(就是那个用户的amount_won的总和)。

from django.db.models import Sum

<h1> Players </h1>

{% if latest_player_list %}
    <ul>
    {% for player in latest_player_list %}
        <li><a href="/stakeme/{{ player.id }}/">{{ player.user_name }} </a><br>Total Won: {{Stakes.objects.filter(player__user_name).aggregate(Sum('amount_won'))}}
</li>
    {% endfor %}
    </ul>
    <br>
{% else %}
    <p>No players are available.</p>
{% endif %}

<h3><a href="/stakeme/new/">New Player</a></h3>

抱歉如果这听起来很初级。提前谢谢你的帮助!

2 个回答

1

这里的简单回答是,你在模板里做的事情太多了。比如说,你不能在模板中使用Python的import语句,这样的话它只会当作文本显示出来。通常你应该在视图类里处理查询逻辑,然后把数据传递给模板去显示。

4

虽然导入语句不是模板语言的一部分,但这其实不是你的问题——它只会显示为文本。真正的问题在于你的函数调用:Django 不允许在模板中使用带括号的函数调用。只有那些没有参数的函数才被允许。你需要在视图中进行查找,然后把结果传递到上下文中。

当然,这些内容在文档中有清楚的说明

撰写回答