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获得文件创建时间和修改时间的方法
Jun 30 Python
Python操作SQLite数据库的方法详解
Jun 16 Python
Python中用psycopg2模块操作PostgreSQL方法
Nov 28 Python
微信跳一跳自动运行python脚本
Jan 08 Python
Python工程师面试必备25条知识点
Jan 17 Python
ubuntu安装mysql pycharm sublime
Feb 20 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
selenium+python自动化测试之多窗口切换
Jan 23 Python
Spring实战之使用util:命名空间简化配置操作示例
Dec 09 Python
基于python监控程序是否关闭
Jan 14 Python
python给list排序的简单方法
Dec 10 Python
Django实现drf搜索过滤和排序过滤
Jun 21 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自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
开启BootStrap学习之旅
2016/05/04 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
JS实现放烟花效果
2020/03/10 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python批量生成本地ip地址的方法
2015/03/23 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
Python机器学习logistic回归代码解析
2018/01/17 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
Python实现Restful API的例子
2019/08/31 Python
Python如何测试stdout输出
2020/08/10 Python
python实现计算图形面积
2021/02/22 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
美国性感女装网站:bebe
2017/03/04 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
年级组长自我鉴定
2014/02/22 职场文书
办公室副主任职责范本
2014/03/08 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
小石潭记导游词
2015/02/03 职场文书
2015年业务员工作总结范文
2015/04/07 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python
在Django中使用MQTT的方法
2021/05/10 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python