我想打印出每个选项得到的票数.我在模板中有以下代码:

{% for choice in choices %}
    {{choice.choice}} - {{votes[choice.id]}} <br />
{% endfor %}

votes只是一个字典,而choices是一个模型对象.

它会引发以下消息的异常:

"Could not parse the remainder"

推荐答案

为了回应/扩展Jeff的 comments ,我认为你应该瞄准Choice类中的一个属性,该属性计算与该对象关联的投票数:

class Choice(models.Model):
    text = models.CharField(max_length=200)

    def calculateVotes(self):
        return Vote.objects.filter(choice=self).count()

    votes = property(calculateVotes)

然后在您的模板中,您可以执行以下操作:

{% for choice in choices %}
    {{choice.choice}} - {{choice.votes}} <br />
{% endfor %}

模板标签对于这个解决方案来说有点过头了,但它也不是一个糟糕的解决方案.Django中模板的目标是将您与模板中的代码隔离,反之亦然.

我会try 上面的方法,看看ORM生成什么SQL,因为我不确定ORM是否会预先缓存属性并只为属性创建子 Select ,或者是否会迭代/按需运行查询来计算投票数.但是,如果它生成可怕的查询,您总是可以用您自己收集的数据填充视图中的属性.

Python相关问答推荐

try 使用tensorFlow.keras.models时optree Import错误

如何使用函数正确索引收件箱?

定义同侪组并计算同侪组分析

telegram 机器人API setMyName不起作用

请从Python访问kivy子部件的功能需要帮助

Pandas :多索引组

具有多个选项的计数_匹配

使用numpy提取数据块

有症状地 destruct 了Python中的regex?

什么相当于pytorch中的numpy累积ufunc

如何让Flask 中的请求标签发挥作用

Mistral模型为不同的输入文本生成相同的嵌入

如何从.cgi网站刮一张表到rame?

在Mac上安装ipython

Python—从np.array中 Select 复杂的列子集

为什么抓取的HTML与浏览器判断的元素不同?

为什么if2/if3会提供两种不同的输出?

在Admin中显示从ManyToMany通过模型的筛选结果

Pandas—堆栈多索引头,但不包括第一列

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?