Django - 如何在页面上显示所有formset值

时间:2016-04-27 14:34:35

标签: django django-forms

我的表单看起来像这样:

class ItemForm(forms.Form):
    item = forms.IntegerField() 

这是我的表格的观点:

def testform(request):
  item_form = formset_factory(ItemForm, extra=2)
    if request.method == 'POST':
      item_formset = item_form(request.POST, prefix='items')
        if item_formset.is_valid():
          for items in item_formset:
            cd = items.cleaned_data
            item = cd.get('item')
          return render(request, 'testform/result.html', {'item_formset':item_formset})
     else:
       item_formset = item_form(prefix='items')
     return render(request, 'testform/index.html', {'item_formset':item_formset})

这是我的result.html:

{% for i in cd %}
        {{item}}
{% endfor%}

result.html页面上,我想显示在表单页面上输入的item formset的所有值。但我只是干净的页面。 我做错了什么。谢谢你的帮助

2 个答案:

答案 0 :(得分:2)

您需要遍历您的formset,并将其作为'item_formset'传递给render方法。所以你的result.html应该是这样的:

{% for item_form in item_formset %}
    {{ item_form.item }}
{% endfor %}

请注意,您将访问每个formset表单上的item字段,就像在普通表单中一样。

答案 1 :(得分:1)

您可以迭代表单集中的每个元素或一次显示整个表单集。您可以在此处找到它:https://docs.djangoproject.com/en/1.7/topics/forms/formsets/#understanding-the-managementform