3

我正在使用一个表单集,我希望生成的每个表单都为每个唯一表单显示一个编号的标题。因此,如果我生成 5 个表单,我希望在“表单 1”、“表单 2”、...“表单 5”的表单字段之前显示一个文本标签。

我如何能:

  1. 在表单中为这样一个纯信息文本标签创建一个空间?
  2. 为每个表单设置标题(我在模板中假设)?

谢谢!

4

2 回答 2

4

forloop.counter您可以在每个表单之前使用模板在模板中添加标签,如下所示

<form method="post" action="">
    {{ formset.management_form }}
    <table>
        {% for form in formset %}
        <label> Form - {{forloop.counter}} </label>
        {{ form }}
        {% endfor %}
    </table>
</form>
于 2013-03-07T06:55:49.140 回答
1

我意识到文档给出了解决方案。您可以访问{{forloop.counter}}并使用通用布局元素Layout创建标签:HTML

请注意,您仍然可以使用助手(在这种情况下,我们使用用于构建表单集的表单的助手)。这里的主要区别是辅助属性应用于表单结构,而布局应用于表单集的表单。渲染表单集会在布局渲染中注入一些额外的上下文,以便您可以执行以下操作:

HTML("{% if forloop.first %}消息仅以formset表单列表的第一种形式显示{% endif %}", Fieldset("Item {{ forloop.counter }}", 'field-1', [ ...])

于 2013-03-09T12:17:06.960 回答