在django表格中重复字段

时间:2017-01-09 10:54:45

标签: python django django-forms

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

  

NAME1

     

name1 IPs

     

NAME2

     

name2 IPs

     

NAME3

     

name3 IPs

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

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

由于

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

看来你有表格,你想要重复这些表格......

您可以使用formset ...(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())

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

在template.html中

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

那应该有用