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中用于计算对数的log()方法
May 15 Python
python使用xlrd与xlwt对excel的读写和格式设定
Jan 21 Python
单利模式及python实现方式详解
Mar 20 Python
python发送告警邮件脚本
Sep 17 Python
对Python 两大环境管理神器 pyenv 和 virtualenv详解
Dec 31 Python
深入理解Python异常处理的哲学
Feb 01 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
Dec 05 Python
python实现查找所有程序的安装信息
Feb 18 Python
如何使用scrapy中的ItemLoader提取数据
Sep 30 Python
python中K-means算法基础知识点
Jan 25 Python
用Python提取PDF表格的方法
Apr 11 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
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
js 替换
2008/02/19 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
document.createElement()用法及注意事项(ff下不兼容)
2013/03/13 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
jQuery中使用validate插件校验表单功能
2019/05/24 jQuery
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
JavaScript实现简单计算器
2020/03/19 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
如何使用 vue-cli 创建模板项目
2020/11/19 Vue.js
[04:12]第二届DOTA2亚洲邀请赛选手传记-Newbee.Sccc
2017/04/03 DOTA
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
剖析Python的Twisted框架的核心特性
2016/05/25 Python
python selenium UI自动化解决验证码的4种方法
2018/01/05 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
解决Django Static内容不能加载显示的问题
2019/07/28 Python
用Python去除图像的黑色或白色背景实例
2019/12/12 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
财务简历的自我评价
2014/03/05 职场文书
中秋寄语大全
2014/04/11 职场文书
职务说明书范文
2014/05/07 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
仓管员岗位职责
2015/02/03 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
单位证明范文
2015/06/18 职场文书
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技