【发布时间】:2013-02-22 06:25:47
【问题描述】:
我正在使用一个表单集,我希望生成的每个表单都为每个唯一表单显示一个编号的标题。因此,如果我生成 5 个表单,我希望在显示“Form 1”、“Form 2”、...“Form 5”的表单字段之前显示一个文本标签。
我该怎么做:
- 在表单中为此类纯信息文本标签创建一个空格?
- 为每个表单设置标题(我假设在模板中)?
谢谢!
【问题讨论】:
标签: django django-forms
我正在使用一个表单集,我希望生成的每个表单都为每个唯一表单显示一个编号的标题。因此,如果我生成 5 个表单,我希望在显示“Form 1”、“Form 2”、...“Form 5”的表单字段之前显示一个文本标签。
我该怎么做:
谢谢!
【问题讨论】:
标签: django django-forms
您可以在每个表单之前使用forloop.counter 在模板中添加标签,如下所示
<form method="post" action="">
{{ formset.management_form }}
<table>
{% for form in formset %}
<label> Form - {{forloop.counter}} </label>
{{ form }}
{% endfor %}
</table>
</form>
【讨论】:
我意识到the docs 给出了解决方案。您可以在Layout 中访问{{forloop.counter}},并使用HTML 通用布局元素创建标签:
请注意,您仍然可以使用帮助程序(在这种情况下,我们使用 用于构建表单集的表单助手)。主要区别 这里是辅助属性应用于表单结构, 而布局应用于表单集的表单。渲染表单集 在布局渲染中注入一些额外的上下文,这样你就可以做到 比如:
HTML("{% if forloop.first %}消息只以第一种形式显示 表单集表单列表{% endif %}", Fieldset("Item {{ forloop.counter }}", 'field-1', [...])
【讨论】: