前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django源码学习-18-ModelForm

Django源码学习-18-ModelForm

作者头像
小团子
发布2019-08-16 11:11:30
6830
发布2019-08-16 11:11:30
举报
文章被收录于专栏:数据云团数据云团

Django源码学习-17-Forms

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下常用参数:

代码语言:javascript
复制
 # 对应的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来校验的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档