您好我有一个网站,它将用户结果输出为零件和数量表。页面上的用户交互可能导致表中的行数(部分)变化。
我需要针对用户保存此部件列表,因此我认为formset是处理此问题的最佳方式:
forms.py
class UserBuildForm(forms.Form):
part = forms.CharField()
part_quantity = forms.IntegerField()
views.py
from django.forms.formsets import formset_factory
from tool.forms import UserBuildForm
def my_view(request):
...
UserBuildFormSet = formset_factory(UserBuildForm)
formset = UserBuildFormSet()
...
我的想法是将表单字段包装在表格html中,以便零件列和数量列实际上是输入(尽管只有数量应该是用户可编辑的)。这样每一行实际上都是一种形式。
现在,我的ajax函数通过向表中追加和删除行来工作。我可以添加额外的表单字段,只是简单的html?
我该如何处理这些动态数量的表格?我知道您可以使用extra
指定表单集的数量,但我需要验证的表单数量是未知的。
此外 - 这是保存用户产品数据的典型方法的最佳方法吗?
任何帮助非常感谢。
答案 0 :(得分:2)
只需迭代views.py中的表单来处理数据:
表单中的formset.forms: form.save()
这是excellet教程,它向您展示如何处理添加/删除表单字段(jquery): http://stellarchariot.com/blog/2011/02/dynamically-add-form-to-formset-using-javascript-and-django/