3

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

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

表格.py

class UserBuildForm(forms.Form):
    part = forms.CharField()
    part_quantity = forms.IntegerField()

视图.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的数量,但我需要验证的表单数量是未知的。

另外 - 这是保存用户产品数据的典型方法的最佳方法吗?

非常感谢任何帮助。

4

1 回答 1

2
  • 您可以使用 jquery 添加/删除表单字段
  • 表单数量存储在隐藏输入“id_formname_TOTAL-FORMS
  • 只需遍历 views.py 中的表单来处理数据:

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

这是 excellet 教程,向您展示如何处理添加/删除表单字段(jquery): http ://stellarchariot.com/blog/2011/02/dynamically-add-form-to-formset-using-javascript-and -django/

于 2013-01-24T15:41:14.030 回答