表单集
表单集是表单对象的集合,用于处理多个表单。可调用diango.forms模块提供的formset_factory()工厂类方法创建表单集类。
举例:
classTestFormset=formset_factory(test,extra=2) #创建表单集类
test参数表示自定义的表单类
extra参数表示指定表单集中包含的表单个数,默认为1,最大为1000
创建了表单集类后,就可用来创建表单集对象:
formset=classTestFormset(request.POST) #带参表单集对象
formset=classTestFormset() #空表单集对象
文件\chapter7\app\views.py
from django.shortcuts import render
from django import forms
class charForm(forms.Form):
name=forms.CharField(max_length=50,label="姓名")
age=forms.IntegerField(max_value=50,min_value=20,label="年龄",help_text="年龄不小于20且不大于50")
from django.forms import formset_factory
def testformsetfactory(request):
classformsetfactory=formset_factory(charForm,extra=2) #创建表单集类
if request.method=="POST":
formset=classformsetfactory(request.POST) #创建表单集类对象
else:
formset=classformsetfactory() #创建空表单集类对象
return render(request,"tempfromset.html",{"formset":formset})
文件\chapter7\chapter7\urls.py
from django.contrib import admin
from django.urls import path
from app import views
urlpatterns = [
path('admin/', admin.site.urls),
path('formset/',views.testformsetfactory),
]
文件\chapter7\app\templates\tempfromset.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h3>使用表单集</h3>
<form action="/formset/" method="POST">
{% csrf_token %}
<table>
{{formset}}
</table>
<input type="submit" value="提交"/>
</form>
</body>
</html>
使用表单集.png
网友评论