【问题标题】:Best way to get dynamic fields in Django在 Django 中获取动态字段的最佳方法
【发布时间】:2012-09-22 22:17:52
【问题描述】:

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

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

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

我想如果我将它们都命名为相同的名称,我会得到一个名称数组:

request.POST.getlist('firstname')

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

欢迎提出任何建议。

【问题讨论】:

    标签: django html-input


    【解决方案1】:

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

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-24
      • 2011-01-09
      • 1970-01-01
      • 2022-01-11
      • 2020-08-01
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多