我正在使用一个表单集,我希望生成的每个表单都为每个唯一表单显示一个编号的标题。因此,如果我生成 5 个表单,我希望在“表单 1”、“表单 2”、...“表单 5”的表单字段之前显示一个文本标签。
我如何能:
- 在表单中为这样一个纯信息文本标签创建一个空间?
- 为每个表单设置标题(我在模板中假设)?
谢谢!
我正在使用一个表单集,我希望生成的每个表单都为每个唯一表单显示一个编号的标题。因此,如果我生成 5 个表单,我希望在“表单 1”、“表单 2”、...“表单 5”的表单字段之前显示一个文本标签。
我如何能:
谢谢!
forloop.counter
您可以在每个表单之前使用模板在模板中添加标签,如下所示
<form method="post" action="">
{{ formset.management_form }}
<table>
{% for form in formset %}
<label> Form - {{forloop.counter}} </label>
{{ form }}
{% endfor %}
</table>
</form>
我意识到文档给出了解决方案。您可以访问{{forloop.counter}}
并使用通用布局元素Layout
创建标签:HTML
请注意,您仍然可以使用助手(在这种情况下,我们使用用于构建表单集的表单的助手)。这里的主要区别是辅助属性应用于表单结构,而布局应用于表单集的表单。渲染表单集会在布局渲染中注入一些额外的上下文,以便您可以执行以下操作:
HTML("{% if forloop.first %}消息仅以formset表单列表的第一种形式显示{% endif %}", Fieldset("Item {{ forloop.counter }}", 'field-1', [ ...])