Form:
from django import forms
from django.forms import fileds ----> 字段对象
from django.forms import widgets ----> form创建标签的样式包含所有样式)
class FM(forms.Form):
user = fileds.CharFiled()
......
obj = FM()
obj = FM(request.POST)
Form 内容很多....很多....
生成HTML(保留上一次提交的数据)
自定义:
类 --> 字段(校验) --> 插件(生成HTML)
初始化操作:
dic = {'user' : 'root', ......}
obj = FM(initial=dic)
ModelForm: Model + Form
class modelForm1(forms.ModelForm):
class Meta():
model = models.UserInfo # 关联的表
fields = '__all__' / field = ['username','password'] /enclude # 代指所有字段/自选字段/排除字段
自己定义的Form 继承 Form 继承 BaseForm
自己定义的ModelForm 继承ModelForm 继承BaseModelForm 继承ModelForm
1.生成HTML标签: class Meta: ...
2.mf = xxxModelForm(instance=ModelObj) 生成默认值
3.生成额外的标签
4.各种验证 is_valid() -> 各种钩子
5.mf.save()