我想要一个包含三个相关字段的三个表单(一个名称,一些ip地址作为一个简单的正则表达式字段)
NAME1
name1 IPs
NAME2
name2 IPs
NAME3
name3 IPs
名称1和2是必需的,IP永远不会。有没有办法不重复这些字段,和/或更好,接收它们作为列表或类似的东西: [{name,ip},{name,ip},{name,ip}]
编辑:名称和IP是野生数据,它们与任何模型无关,它们用于调用API
由于
答案 0 :(得分:1)
您需要使用内联表单集。
Creating a model and related models with Inline formsets
https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/#inline-formsets
答案 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>
那应该有用