1月3日学习内容整理:modelform
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对象修改字段值