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 11 Python
Python中在脚本中引用其他文件函数的实现方法
Jun 23 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
Apr 17 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
python3.6 实现AES加密的示例(pyCryptodome)
Jan 10 Python
Python实现手写一个类似django的web框架示例
Jul 20 Python
Python使用分布式锁的代码演示示例
Jul 30 Python
基于Django的乐观锁与悲观锁解决订单并发问题详解
Jul 31 Python
django drf框架中的user验证以及JWT拓展的介绍
Aug 12 Python
基于打开pycharm有带图片md文件卡死问题的解决
Apr 24 Python
django orm模块中的 is_delete用法
May 20 Python
call在Python中改进数列的实例讲解
Dec 09 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预定义变量使用帮助(带实例)
2013/10/30 PHP
php ZipArchive压缩函数详解实例
2013/11/06 PHP
PHP return语句另类用法不止是在函数中
2014/09/17 PHP
php导出生成word的方法
2015/12/25 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
基于jQuery的倒计时实现代码
2012/05/30 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
javascript转换日期字符串为Date日期对象的方法
2015/02/13 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
js控制文本框禁止输入特殊字符详解
2017/04/07 Javascript
微信小程序开发之map地图实现教程
2017/06/08 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
VUE写一个简单的表格实例
2019/08/06 Javascript
Vue使用Element实现增删改查+打包的步骤
2020/11/25 Vue.js
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python算法学习之计数排序实例
2013/12/18 Python
python re正则表达式模块(Regular Expression)
2014/07/16 Python
Python实现的桶排序算法示例
2017/11/29 Python
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
历史教育专业个人求职信
2013/12/13 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
会计学专业求职信
2014/07/17 职场文书
元旦趣味活动方案
2014/08/22 职场文书
交通安全横幅标语
2014/10/07 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
实习护士自荐信
2015/03/25 职场文书
Python爬取某拍短视频
2021/06/11 Python
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis