Django使用表单集

2020-11-03  本文已影响0人  Chaweys

表单集
表单集是表单对象的集合,用于处理多个表单。可调用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
上一篇 下一篇

猜你喜欢

热点阅读