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列表操作使用示例分享
Feb 21 Python
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 Python
Python中的super用法详解
May 28 Python
python文件的md5加密方法
Apr 06 Python
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 Python
python的Tqdm模块的使用
Jan 10 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
Python 数值区间处理_对interval 库的快速入门详解
Nov 16 Python
简单易懂Pytorch实战实例VGG深度网络
Aug 27 Python
利用Python实现最小二乘法与梯度下降算法
Feb 21 Python
python入门学习关于for else的特殊特性讲解
Nov 20 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
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
PHP模块化安装教程
2016/06/01 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
2018/03/15 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
2019/10/20 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
JSON 编辑器实现代码
2009/12/06 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
Jquery数字上下滚动动态切换插件
2015/08/08 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
jQuery获取select选中的option的value值实现方法
2016/08/29 Javascript
微信小程序开发中的疑问解答汇总
2017/07/03 Javascript
javascript使用substring实现的展开与收缩文字功能示例
2019/06/17 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
python实现井字棋游戏
2020/03/30 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
Python socket模块方法实现详解
2019/11/05 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
新手学python应该下哪个版本
2020/06/11 Python
python怎么判断素数
2020/07/01 Python
vscode+PyQt5安装详解步骤
2020/08/12 Python
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
Eclipse面试题
2014/03/22 面试题
科技之星事迹材料
2014/06/02 职场文书
高中政治教师教学反思
2016/02/23 职场文书