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获取Windows或Linux主机名称通用函数分享
Nov 22 Python
python使用urllib2提交http post请求的方法
May 26 Python
使用相同的Apache实例来运行Django和Media文件
Jul 22 Python
一步步解析Python斗牛游戏的概率
Feb 12 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
Jun 20 Python
python 环境变量和import模块导入方法(详解)
Jul 11 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
Oct 11 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 Python
PYTHON如何读取和写入EXCEL里面的数据
Oct 28 Python
Django实现网页分页功能
Oct 31 Python
python输出数学符号实例
May 11 Python
python调用有道智云API实现文件批量翻译
Oct 10 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 事务处理数据实现代码
2010/05/13 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
php中防止SQL注入的最佳解决方法
2013/04/25 PHP
php校验表单检测字段是否为空的方法
2015/03/20 PHP
twig模板获取全局变量的方法
2016/02/05 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
扩展String功能方法
2006/09/22 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
jquery隐藏标签和显示标签的实例
2013/11/11 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
Js可拖拽放大的层拖动特效实现方法
2015/02/25 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
js实现抽奖功能
2020/11/24 Javascript
python实现自动登录人人网并访问最近来访者实例
2014/09/26 Python
收藏整理的一些Python常用方法和技巧
2015/05/18 Python
使用Python爬了4400条淘宝商品数据,竟发现了这些“潜规则”
2018/03/23 Python
python监控进程脚本
2018/04/12 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
详解python内置模块urllib
2020/09/09 Python
html5实现九宫格抽奖可固定抽中某项奖品
2020/06/15 HTML / CSS
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
error和exception有什么区别
2012/10/02 面试题
DTD的含义以及作用
2014/01/26 面试题
最美家庭活动方案
2014/08/31 职场文书