python-day97--django-ModelForm
Model Form :直接利用你的models里的字段 应用场景: - ModelForm - 中小型应用程序(model是你自己写的) - Form - 大型应用程序 注意事项: - 1. 类 from django.shortcuts import render,redirect,HttpResponse from app01 import models from django.forms import Form,ModelForm from django.forms import fields from django.forms import widgets as wd class Foo(ModelForm): title = fields.CharField(max_length=6,required=True,widget=wd.Textarea()) #可以自定义字段,如果该字段与下面的表内的字段不冲突,那就会增加一个,如果冲突就会覆盖下方类中的字段 class Meta: # model = models.Role #Role表内的所有字段就直接拿过来了 # fields = "__all__" #指定字段 # fields = ['caption',] #指定字段 # exclude = ['catpion'] #指定字段 model = models.UserType fields = "__all__" error_messages = { 'title':{'required':'名称不能为空','invalid':'格式错误'} } widgets = { 'title':wd.TextInput(attrs={'class':'c1'}) } # 钩子函数 - 2. 添加 GET: form = Foo() POST: form = Foo(data=request.POST) form.is_valid() form.cleaned_data form.save() #直接把干净的数据帮你创建了记录,无论是单表还是多表 form.erros - 3. 修改 GET: form = Foo(instance=obj) POST: form = Foo(instance=obj,data=request.POST) #如果不写instance=obj数据库会多增加一条记录不会修改,给它一个对象表示向对象修改数据 ... form.save()