Django基础(11): 表单集合Formset的高级用法详解
Django提供了一个方便的功能,能够在视图中处理多个表单的情况,这就是Formset。Formset是一个可以同时处理多个表单的表单集合。下面是Formset的高级用法详解:
1. 创建Formset:
首先,需要导入`formset_factory`函数来创建Formset。该函数接受两个参数:表单的类和表单数量。例如,创建一个包含5个MyForm表单的Formset,可以使用以下代码:
“`python
from django.forms import formset_factory
from myapp.forms import MyForm
MyFormSet = formset_factory(MyForm, extra=5)
“`
2. 渲染Formset:
在视图中,你需要将Formset传递给模板,然后在模板中渲染每个表单。可以使用`formset`变量来代表整个表单集合,使用`form`变量来表示每个单独的表单。例如,在视图中传递Formset到模板:
“`python
from myapp.forms import MyFormSet
def my_view(request):
formset = MyFormSet()
return render(request, ‘my_template.html’, {‘formset’: formset})
“`
在模板中渲染Formset:
“`html
{% csrf_token %}
{% for form in formset %}
{{ form.as_