0

我有一个允许人们创建记录的 Django 应用程序。一条记录可以包含一个或多个人,默认情况下表单包含三个字段来捕获一个人的姓名。一个用于名字,一个用于中间名首字母,一个用于姓氏。当一个人创建记录时,他们可以通过单击加号按钮添加其他人。加号按钮添加了另一组三个文本框。他们可以为想要添加的人执行此操作。

一旦他们单击加号按钮,就会在每行旁边显示一个减号按钮,以便他们可以在决定删除这些字段时删除这些字段。

命名文本字段的最佳方法是什么,以便我可以获取所有文本字段并在应用程序的后端遍历它们?

我想如果我将它们都命名为相同的名称,那么当我这样做时,我会得到一组名称:

request.POST.getlist('firstname')

然而,事实并非如此。相反,我从具有该名称的最后一个输入字段中获取值。

任何建议表示赞赏。

4

1 回答 1

0

我建议你看一下表单集,而不是重新发明这个。

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 个表单),网上有很多示例说明如何执行此操作:

您将如何在 Django 中制作动态表单集?
使用 Ajax 将表单动态添加到 Django 表单集

于 2012-10-02T02:56:32.193 回答