Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
使用 Django 开发 Web 程序,阶段一,手动对表单进行增、删、改、查,手动把ORM操作获取的数据渲染到模板;阶段二,Form 类,自动生成标签(input、select),并对用户输入的数据做规则验证;阶段三,ModelForm 是Form和Django的Model数据库模型结合体,可以简单、方便对数据库进行增加、编辑操作和验证标签的生成。
ModelForm 定义:
form与model的终极结合,会根据model中的字段转换成对应的form字段,并且能生成标签等操作。
ModelForm类的写法:
class Meta下常用参数:
# 对应的Model中的类
model = models.Book
# 字段,如果是__all__,就是表示列出所有的字段
fields = "__all__"
# 排除的字段
exclude = None
# 提示信息
labels = None
# 帮助提示信息
help_texts = None
# 自定义插件
widgets = None
# 自定义错误信息
error_messages = None
# 每个字段的所有的错误都可以写
error_messages = {'title':{'required':'不能为空',...} }
ModelForm 的验证:
与普通的Form表单验证类型类似,ModelForm表单的验证在调用is_valid() 或访问errors 属性时隐式调用。可以像使用Form类一样自定义局部钩子方法和全局钩子方法来实现自定义的校验规则。如果不重写具体字段并设置validators属性的话,ModelForm是按照模型中字段的validators来校验的。