【发布时间】:2018-07-05 21:53:56
【问题描述】:
我需要在模板文件中渲染 5 次 html 代码块。就像在 php 中我尝试了类似下面的东西,
{% extends 'stories/base.html' %}
{% block body %}
<h1>This is rating page</h1>
<section class='rating-widget'>
{% with count = 0 %}
{% while count < 5: %}
<div class='rating-stars text-center'>
<ul class='stars'>
<li class='star selected' title='Poor' data-value='1'>
<i class='fa fa-star fa-fw'></i>
</li>
<li class='star selected' title='Fair' data-value='2'>
<i class='fa fa-star fa-fw'></i>
</li>
<li class='star selected' title='Good' data-value='3'>
<i class='fa fa-star fa-fw'></i>
</li>
<li class='star selected' title='Excellent' data-value='4'>
<i class='fa fa-star fa-fw'></i>
</li>
<li class='star selected' title='WOW!!!' data-value='5'>
<i class='fa fa-star fa-fw'></i>
</li>
</ul>
</div>
{% count += 1 %}
{% endwhile %}
{% endwith %}
</section>
但我无法得到预期的结果。它给了我语法错误“'with'期望至少一个变量赋值”。这是可能的还是在 django 中实现这种循环的正确方法是什么?
【问题讨论】:
-
您不能在 Django 模板语言中增加变量。我链接到的duplicate question 有几个建议。对于循环 5 次,
{% for i in 'xxxxx' %}是最简单的。对于更大的数字,我喜欢times过滤器的建议。 -
@Alasdair 谢谢。它有效且简单。有很多东西要学:)。