大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇文章为大家展示了Django中如何使用modelform组件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
站在用户的角度思考问题,与客户深入沟通,找到曹县网站设计与曹县网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、国际域名空间、雅安服务器托管、企业邮箱。业务覆盖曹县地区。
modelform是model衍生出来的form .
modelform的用法非常死.
首先在models.py里创建模型表.
所有的form组件单独放在form.py文件,其他地方引入form就可以.
创建modelfrom
只要告诉modelform哪一个模型表,它会自动帮我们比对models模型表字段,并衍生成form组件.它不光给我们提供form组件,还有组件没有的功能.
所有字段都生成form组件.
fields="__all__"
username和password字段生成form组件.
fields=['username','password']
排除gender字段以外都生成form组件.
exclude=['gender']
modelform用在两个地方,一个是添加,一个是编辑.
添加数据
form添加数据先从form取数据,然后在用models插入数据.
modelform直接form.save()就可以插入数据.
编辑数据get请求.
form传值给模板的时候要添加instance数据,否则模板渲染的时候value是空的.
编辑数据post请求.
form.save()的时候要给form添加instance数据,否则会变成create操作,不是update更新操作.
知识点扩展
创建类
from django.forms import ModelFormfrom django.forms import widgets as wdfrom app01 import modelsclass 类名(ModelForm):class Meta:model = models.表名 #models中的表名fields="__all__", # 字段exclude=None, # 排除字段widgets=None, # 自定义插件error_messages=None, # 自定义错误信息(整体错误信息from django.core.exceptions import NON_FIELD_ERRORS)def clean_字段名 #自定义钩子函数
实例化对象
form = 类名(instance=obj,data=request.POST)
instance传的是已有的对象(在页面中显示默认值)
data传的是从页面返回过来的值(用户输入的值 ,用来验证)
form.is_valid() #验证
form.save #将数据保存至数据库中(如果有instance参数就修改数据库中的记录,如果没有instance参数就在数据库中添加新的一条记录)
上述内容就是Django中如何使用modelform组件,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。