1、modelform本質上還是form組件
2、引入
from django.forms import ?ModelForm
3、創建
class ?Form(ModelForm):
class ?Meta:
model=Book ? ? ? ? ? ? ? ? ?Book就是models.py中定義的類,也就是表
firelds="_ _all_ _" ? ? ? ? ?代表繼承Book表中的所有字段
4、實例對象
form = Form() ? ? ?未綁定的,不帶數據的Form對象
form = Form(data=request.POST) ? ? ?綁定的,帶數據的Form對象
5、前端渲染
把未綁定的實例對象傳到模版文件中,for循環這個實例對象,循環出的就是每一個字段,會自動渲染出form表單,可以.label取出字段名
6、給渲染出的標簽添加樣式
from django.forms ?import ?widgets
在class ?Meta中寫:
widgets={
"字段名":widgets.textinput( attrs={} ) ? ? ? ? ? ? 分別給字段添加樣式,屬性值,這里注意必須寫明每一個字段名,無法統一添加,跟form組件寫法是一樣的
}
7、新增記錄,保存數據
使用綁定的實例對象,校驗完后:
form.save() ? ?這樣就會自動在數據庫中生成一條記錄,因為和models是有關聯的
8、編輯
form = Form(instance = model對象)
將實例對象傳到模版文件中,就會自動顯示該model對象的字段值
9、保存編輯后的數據
整理我們不能用綁定的實例對象的save方法,這樣就會在數據庫中生成新的記錄,我們要做的是update
form = ?Form(instance=model對象,data=request.POST)?
校驗完后form.save()
這樣就是對該model對象修改字段值