【问题标题】:Repeat fields in django formsDjango 表单中的重复字段
【发布时间】:2017-05-23 14:50:12
【问题描述】:

我想要一个包含三倍于两个相关字段的表单(一个名称和一些 ip 地址作为一个简单的正则表达式字段)

名字1

name1 IP

名字2

name2 IP

名字3

name3 IPs

名称 1 和 2 是必需的,IP 从来不是。有没有办法不重复这些字段,和/或更好地接收它们作为列表或类似的东西: [ { name, ip }, { name, ip }, { name, ip } ]

编辑:名称和 IP 是野数据,它们与任何模型无关,它们用于调用 API

谢谢

【问题讨论】:

    标签: python django django-forms


    【解决方案1】:

    【讨论】:

    • 对不起,我不明白。实际上没有与此表单相关的模型(因为我将这些数据与 API 一起使用)。
    【解决方案2】:

    您似乎有表格,并且您想正确地重复这些表格...

    您可以使用表单集... (formset documentation)。

    >>> import datetime
    >>> from django.forms import formset_factory
    >>> from myapp.forms import ArticleForm
    >>> ArticleFormSet = formset_factory(ArticleForm, extra=2)
    >>> formset = ArticleFormSet(initial=[
    ...     {'title': 'Django is now open source',
    ...      'pub_date': datetime.date.today(),}
    ... ])
    
    >>> for form in formset:
    ...     print(form.as_table())
    

    您可以将此表单集作为上下文变量发送,以使用这些表单呈现模板。

    在模板.html中

    <form method="post" action="">
        {{ formset.management_form }}
        <table>
            {% for form in formset %}
            {{ form }}
            {% endfor %}
        </table>
     <button type="submit">
    </form>
    

    应该可以的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      相关资源
      最近更新 更多