Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django动态表单集表单_Django_Django Forms - Fatal编程技术网

Django动态表单集表单

Django动态表单集表单,django,django-forms,Django,Django Forms,嗨,我有一个网站,输出一个零件和数量表的用户结果。页面上的用户交互可能导致表中的行(部分)数量可变 我需要针对用户保存此零件列表,因此我认为表单集是处理此问题的最佳方法: forms.py class UserBuildForm(forms.Form): part = forms.CharField() part_quantity = forms.IntegerField() from django.forms.formsets import formset_factory f

嗨,我有一个网站,输出一个零件和数量表的用户结果。页面上的用户交互可能导致表中的行(部分)数量可变

我需要针对用户保存此零件列表,因此我认为表单集是处理此问题的最佳方法:

forms.py

class UserBuildForm(forms.Form):
    part = forms.CharField()
    part_quantity = forms.IntegerField()
from django.forms.formsets import formset_factory
from tool.forms import UserBuildForm

def my_view(request):
    ...
    UserBuildFormSet = formset_factory(UserBuildForm)
    formset = UserBuildFormSet()
    ...
视图.py

class UserBuildForm(forms.Form):
    part = forms.CharField()
    part_quantity = forms.IntegerField()
from django.forms.formsets import formset_factory
from tool.forms import UserBuildForm

def my_view(request):
    ...
    UserBuildFormSet = formset_factory(UserBuildForm)
    formset = UserBuildFormSet()
    ...
我的想法是将表单字段包装在html表中,以便parts列和quantity列实际上是输入(尽管只有数量应该是用户可编辑的)。这样,每一行实际上就是一个表单

现在,我的ajax函数通过向表中添加和删除行来工作。我可以像普通html一样添加额外的表单字段吗

我应该如何处理这些动态数量的表单?我知道您可以使用
extra
指定表单集的数量,但我需要验证的表单数量未知

此外,这是保存用户产品数据的典型方法的最佳方法吗

非常感谢您的帮助

  • 可以使用jquery添加/删除表单字段
  • 表格数量存储在隐藏输入“id\u formname\u TOTAL-forms”中
  • 只需迭代views.py中的表单即可处理数据:

    对于formset.forms中的表单: form.save()

下面是excellet教程,它向您展示了如何处理添加/删除表单字段(jquery):