这是我的DjangoTemplates /(mysite)/index.html。我正在尝试在index.html中做一些数学运算。我想在for循环中显示每个user_name的整个Stakes.amount_won的总和。我认为我的数学语法正确,但它似乎不适用于模板。
for循环应该遍历每个user_name,并将其user_name显示为链接,其中包含赢额金额:(该user_name的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>
对不起,如果这是noobish。提前感谢您的帮助!
答案 0 :(得分:4)
虽然import语句不是模板语言的一部分,但实际上这不是你的问题 - 它只会显示为文本。实际问题是你的函数调用:Django不允许在模板中使用带括号的调用。只允许没有参数的函数。您需要在视图中执行查找并在上下文中传递它。
当然,这只是文档中的clearly explained。
答案 1 :(得分:1)
这里的快速回答是你试图在模板中做太多 - 例如,你根本不能在模板中使用Python import
语句,所以我想这只是渲染为文本。您通常希望在视图类中执行查询逻辑,然后将数据传递给模板进行渲染。