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计算文本文件行数的方法
Jul 06 Python
python更新列表的方法
Jul 28 Python
python3+mysql查询数据并通过邮件群发excel附件
Feb 24 Python
浅谈Series和DataFrame中的sort_index方法
Jun 07 Python
浅谈python 导入模块和解决文件句柄找不到问题
Dec 15 Python
numpy.random模块用法总结
May 27 Python
Django分页功能的实现代码详解
Jul 29 Python
python返回数组的索引实例
Nov 28 Python
Python打印不合法的文件名
Jul 31 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
Feb 20 Python
Pytorch 中net.train 和 net.eval的使用说明
May 22 Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
Apr 28 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递归列出所有文件和目录的代码
2008/09/10 PHP
php中CI操作多个数据库的代码
2012/07/05 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
2013/07/03 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
基于jquery的表格排序
2010/09/11 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
nodejs入门教程三:调用内部和外部方法示例
2017/04/24 NodeJs
input输入框内容实时监测(附代码)
2017/08/15 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
微信小程序云开发 搭建一个管理小程序
2019/05/17 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[01:05:24]Ti4 冒泡赛第二天 iG vs NEWBEE 3
2014/07/15 DOTA
python机器学习库常用汇总
2017/11/15 Python
python更改已存在excel文件的方法
2018/05/03 Python
Python文本统计功能之西游记用字统计操作示例
2018/05/07 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
Python PIL图片添加字体的例子
2019/08/22 Python
python重要函数eval多种用法解析
2020/01/14 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
档案室主任岗位职责
2014/02/12 职场文书
美术国培研修感言
2014/02/12 职场文书
会计人员岗位职责
2014/03/19 职场文书
企业党员个人自我评价
2014/09/20 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
团组织关系介绍信
2019/06/24 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python