【发布时间】:2015-09-16 18:24:23
【问题描述】:
我没有成功尝试使我通过循环生成的某些表单的标签依赖于forloop.counter。这是我到目前为止所拥有的:
{% for field in form %}
{% formfield field with label="blablabla {{ forloop.counter }}" %}
{% endfor %}
这将返回正确的形式,但 {{ forloop.counter }} 在标签中按原样显示,而不是被其值替换。
我做错了什么?我在 Django 代码中到处都能看到这种结构,例如在https://docs.djangoproject.com/en/1.4/intro/tutorial04/
<h1>{{ poll.question }}</h1>
{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
<form action="/polls/{{ poll.id }}/vote/" method="post">
{% csrf_token %}
{% for choice in poll.choice_set.all %}
<input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
<label for="choice{{ forloop.counter }}">{{ choice.choice }}</label><br />
{% endfor %}
<input type="submit" value="Vote" />
</form>
除了上面示例中的 id 之外,是什么使表单的标签无法将 {{ forloop.counter }} 解析为字符串?
【问题讨论】:
-
那根本不一样。在该示例中,您没有看到在 inside 另一个 Django 标记中使用了 Django 变量语法。
-
@Daniel Roseman:没错,感谢您指出。我将尝试了解更多关于在标签中使用 Django 变量的信息。
标签: django django-forms django-templates