Django中modelform组件实例用法总结

 更新时间:2020年02月10日 15:59:42   作者:piaoxuexie  
在本篇文章里小编给大家整理的是关于Django中modelform组件实例用法内容,有兴趣的朋友们可以跟着学习下。

modelform是model衍生出来的form .

modelform的用法非常死.

首先在models.py里创建模型表.

所有的form组件单独放在form.py文件,其他地方引入form就可以.

创建modelfrom

只要告诉modelform哪一个模型表,它会自动帮我们比对models模型表字段,并衍生成form组件.它不光给我们提供form组件,还有组件没有的功能.

所有字段都生成form组件.

fields="__all__"   

username和password字段生成form组件.

fields=['username','password'] 

排除gender字段以外都生成form组件.

exclude=['gender'] 

modelform用在两个地方,一个是添加,一个是编辑.

添加数据

form添加数据先从form取数据,然后在用models插入数据.

modelform直接form.save()就可以插入数据.

编辑数据get请求.

form传值给模板的时候要添加instance数据,否则模板渲染的时候value是空的.

编辑数据post请求.

form.save()的时候要给form添加instance数据,否则会变成create操作,不是update更新操作.

知识点扩展

创建类

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下载ts文件视频且合并的操作方法

    Python下载ts文件视频且合并的操作方法

    ts文件,ts即"Transport Stream"的缩写,特点就是要求从视频流的任一片段开始都是可以独立解码的,非常适合网络视频播放,这篇文章主要介绍了Python下载ts文件视频且合并,需要的朋友可以参考下
    2023-01-01
  • pytest测试框架+allure超详细教程

    pytest测试框架+allure超详细教程

    这篇文章主要介绍了pytest测试框架+allure超详细教程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-11-11
  • python lambda函数及三个常用的高阶函数

    python lambda函数及三个常用的高阶函数

    这篇文章主要介绍了python lambda函数及三个常用的高阶函数,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Python JWT认证与pyjwt包详细介绍

    Python JWT认证与pyjwt包详细介绍

    JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密,这篇文章主要介绍了Python JWT认证与pyjwt包简介,需要的朋友可以参考下
    2023-05-05
  • python写一个md5解密器示例

    python写一个md5解密器示例

    这篇文章主要介绍了python写一个md5解密器示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Python PyJWT库简化JSON Web Token的生成与验证

    Python PyJWT库简化JSON Web Token的生成与验证

    PyJWT库为Python开发者提供了简便的生成和验证JWT的工具,本文将深入介绍PyJWT库的核心概念、功能以及实际应用,通过丰富的示例代码,帮助大家更全面地了解和应用这一强大的JWT库
    2023-12-12
  • Python3 使用pip安装git并获取Yahoo金融数据的操作

    Python3 使用pip安装git并获取Yahoo金融数据的操作

    这篇文章主要介绍了Python3 使用pip安装git并获取Yahoo金融数据的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Python中二维列表如何获取子区域元素的组成

    Python中二维列表如何获取子区域元素的组成

    这篇文章主要给大家介绍了Python中二维列表是如何获取子区域元素的组成,文中给出了详细的介绍和示例代码,相信对大家的理解和学习具有一定的参考借鉴价值,有需要的朋友们下面来一起看看吧。
    2017-01-01
  • python实现购物车功能

    python实现购物车功能

    这篇文章主要为大家详细介绍了python实现购物车功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Django中数据库的数据关系:一对一,一对多,多对多

    Django中数据库的数据关系:一对一,一对多,多对多

    今天小编就为大家分享一篇关于Django中数据库的数据关系:一对一,一对多,多对多,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10

最新评论