Django - 如何获取formset中每个表单的前缀

时间:2014-02-14 08:01:54

标签: django django-forms

在具有多个表单的表单集中,每个表单都获得一个唯一的ID,如“MyForm-0_form”,而MyForm是公共前缀,0是迭代表单索引。

假设模板看起来像这样

template.py:

<form action="" method="POST>
{% for form in formset %}
{{form}
{% endfor %}
</form>

提交表单后,我想执行以下操作:

view.py:

[...]
if request.method == "POST":
  if formset.isValid():
    for form in formset:
      print form.currentFormID #here i get stuck. What I would like to yield: MyForm-0

2 个答案:

答案 0 :(得分:2)

试试这个:

if request.method == "POST":
    if formset.is_valid():
        for form in formset:
            print form.prefix

答案 1 :(得分:1)

在表单实例中使用prefix参数。

form1 = FormFirst(request.POST, prefix='form1') 
form2 = FormSecond(request.POST, prefix='form2')

使用前缀的好处是您无需手动重命名字段