【问题标题】:Django dynamic formset formsDjango 动态表单集表单
【发布时间】:2012-12-13 17:58:16
【问题描述】:

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

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

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

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

非常感谢任何帮助。

【问题讨论】:

    标签: django django-forms


    【解决方案1】:
    • 您可以使用 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/

    【讨论】:

      猜你喜欢
      • 2018-08-26
      • 2011-02-07
      • 1970-01-01
      • 2021-03-10
      • 2011-07-11
      • 2020-06-30
      • 2015-11-08
      • 2012-09-07
      • 2020-01-22
      相关资源
      最近更新 更多