这篇文章将为大家详细讲解有关modelform组件如何在Django中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
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 ModelForm from django.forms import widgets as wd from app01 import models class 类名(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参数就在数据库中添加新的一条记录)
关于modelform组件如何在Django中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。