Django中modelform组件实例用法总结


Posted in Python onFebruary 10, 2020

modelform是model衍生出来的form .

modelform的用法非常死.

首先在models.py里创建模型表.

Django中modelform组件实例用法总结

所有的form组件单独放在form.py文件,其他地方引入form就可以.

Django中modelform组件实例用法总结

创建modelfrom

只要告诉modelform哪一个模型表,它会自动帮我们比对models模型表字段,并衍生成form组件.它不光给我们提供form组件,还有组件没有的功能.

Django中modelform组件实例用法总结

所有字段都生成form组件.

fields="__all__"   

username和password字段生成form组件.

fields=['username','password'] 

排除gender字段以外都生成form组件.

exclude=['gender'] 

Django中modelform组件实例用法总结

modelform用在两个地方,一个是添加,一个是编辑.

添加数据

form添加数据先从form取数据,然后在用models插入数据.

modelform直接form.save()就可以插入数据.

Django中modelform组件实例用法总结

编辑数据get请求.

form传值给模板的时候要添加instance数据,否则模板渲染的时候value是空的.

Django中modelform组件实例用法总结

编辑数据post请求.

form.save()的时候要给form添加instance数据,否则会变成create操作,不是update更新操作.

Django中modelform组件实例用法总结

知识点扩展

创建类

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参数就在数据库中添加新的一条记录)

以上这篇基于Django的ModelForm组件(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python中使用base64模块处理字符编码的教程
Apr 28 Python
用Python进行TCP网络编程的教程
Apr 29 Python
Python利用Nagios增加微信报警通知的功能
Feb 18 Python
Python实现购物车程序
Apr 16 Python
flask入门之文件上传与邮件发送示例
Jul 18 Python
使用Python机器学习降低静态日志噪声
Sep 29 Python
python 实现dict转json并保存文件
Dec 05 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
Feb 25 Python
python关于变量名的基础知识点
Mar 03 Python
matplotlib绘制正余弦曲线图的实现
Feb 22 Python
python3美化表格数据输出结果的实现代码
Apr 14 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 Python
python爬虫库scrapy简单使用实例详解
Feb 10 #Python
tensorflow 实现从checkpoint中获取graph信息
Feb 10 #Python
Python3 集合set入门基础
Feb 10 #Python
Django的CVB实例详解
Feb 10 #Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 #Python
Django关于admin的使用技巧和知识点
Feb 10 #Python
Python实现括号匹配方法详解
Feb 10 #Python
You might like
PHP 遍历文件实现代码
2011/05/04 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
php文件上传、下载和删除示例
2020/08/28 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
PHP 访问数据库配置通用方法(json)
2018/05/20 PHP
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
[01:34]2014DOTA2 TI预选赛预选赛 选手比赛房大揭秘!
2014/05/20 DOTA
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
使用canvas压缩图片上传的方法示例
2020/02/07 HTML / CSS
承诺书格式范文
2014/06/03 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书
护士年终工作总结不会写?各科护士模板总结
2020/01/02 职场文书
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers