我有一个允许人们创建记录的Django应用程序。一条记录可以包含一个或多个人,默认情况下该表单包含三个字段来捕获一个人的姓名。一个用于名字,一个用于中间名字,一个用于姓氏。当一个人创建记录时,他们可以通过单击加号按钮添加其他人。加号按钮添加另一组三个文本框。他们可以为他们想要添加的人群做到这一点。
一旦他们点击加号按钮,每行旁边会显示一个减号按钮,这样他们就可以删除这些字段。
命名文本字段的最佳方法是什么,以便我可以获取所有文本字段并在应用程序的后端迭代它们?
我想如果我将它们命名为同样的话我会得到一系列名字:
request.POST.getlist('firstname')
但事实并非如此。相反,我从上一个输入字段中获取该名称的值。
任何建议都表示赞赏。
答案 0 :(得分:0)
我建议你看看formsets,而不是重新发明这个。
https://docs.djangoproject.com/en/dev/topics/forms/formsets/
from django.forms.formsets import formset_factory
FormSet = formset_factory(MyForm, extra=2)
formset = FormSet()
print formset.forms # you will see it is a collection of MyForm objects
您可以通过修改“管理表单”并添加下一个表单来动态添加/删除表单集(您可以复制{{ formset.empty_form }}
并将ID修改为第N个表单)并且在线有很多示例该怎么做:
How would you make a dynamic formset in Django?
Dynamically adding a form to a Django formset with Ajax