如何在Django模板中进行数学运算



我正在Django中编写一个web应用程序,用户可以在其中对帖子进行投票,从1到5(使用星号(,当我想显示星号时,我必须决定其中有多少必须是黄色,有多少不是黄色。我将反馈保存在此模型中:

class Feedback(models.Model):
text = models.TextField()
stars = models.IntegerField(choices=[(i, i) for i in range(1, 6)], blank=False)
article = models.ForeignKey(Article, on_delete=models.CASCADE)
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

问题出在模板上,因为我想做这样的事情,但我不知道如何以及是否是一个好的选择:

{% for _ in art.stars %}
<span class="fa fa-star checked"></span>
{% endfor %}
{% for _ in (5-art.stars) %}
<span class="fa fa-star"></span>
{% endfor %}

首先我们将通过views.py:的范围

return render(request, 'template_name', {'art': art, 'range': range(1, 6),})

你可以这样做:

{% for index in range %}
<span class="fa fa-star {% if index <= art.stars %}checked{% endif %}"></span>
{% endfor %}

或者,如果您不想在views中传递范围,可以在模板中使用make_list

最新更新