【问题标题】:django - Adding a custom title to forms in a formsetdjango - 为表单集中的表单添加自定义标题
【发布时间】:2013-02-22 06:25:47
【问题描述】:

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

我该怎么做:

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

谢谢!

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

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

    <form method="post" action="">
        {{ formset.management_form }}
        <table>
            {% for form in formset %}
            <label> Form - {{forloop.counter}} </label>
            {{ form }}
            {% endfor %}
        </table>
    </form>
    

    【讨论】:

      【解决方案2】:

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

      请注意,您仍然可以使用帮助程序(在这种情况下,我们使用 用于构建表单集的表单助手)。主要区别 这里是辅助属性应用于表单结构, 而布局应用于表单集的表单。渲染表单集 在布局渲染中注入一些额外的上下文,这样你就可以做到 比如:

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

      【讨论】:

        猜你喜欢
        • 2016-09-20
        • 2018-10-02
        • 2011-04-25
        • 1970-01-01
        • 2011-07-03
        • 2011-12-14
        • 2013-03-28
        • 1970-01-01
        • 2021-05-13
        相关资源
        最近更新 更多