Model Form :直接利用你的models里的字段

        应用场景:
- ModelForm - 中小型应用程序(model是你自己写的)
- Form - 大型应用程序
注意事项:
- 1. 类
from django.shortcuts import render,redirect,HttpResponse
from app01 import models
from django.forms import Form,ModelForm
from django.forms import fields
from django.forms import widgets as wd class Foo(ModelForm): title = fields.CharField(max_length=6,required=True,widget=wd.Textarea()) #可以自定义字段,如果该字段与下面的表内的字段不冲突,那就会增加一个,如果冲突就会覆盖下方类中的字段 class Meta:
# model = models.Role #Role表内的所有字段就直接拿过来了
# fields = "__all__" #指定字段
# fields = ['caption',] #指定字段
# exclude = ['catpion'] #指定字段
model = models.UserType
fields = "__all__" error_messages = {
'title':{'required':'名称不能为空','invalid':'格式错误'}
}
widgets = {
'title':wd.TextInput(attrs={'class':'c1'})
} # 钩子函数 - 2. 添加
GET:
form = Foo()
POST:
form = Foo(data=request.POST)
form.is_valid() form.cleaned_data
form.save() #直接把干净的数据帮你创建了记录,无论是单表还是多表 form.erros - 3. 修改
GET:
form = Foo(instance=obj) POST:
form = Foo(instance=obj,data=request.POST) #如果不写instance=obj数据库会多增加一条记录不会修改,给它一个对象表示向对象修改数据
...
form.save()

python-day97--django-ModelForm的更多相关文章

  1. 【python】-- Django ModelForm

    Django ModelForm Django的ModelForm的验证方式相比较form + Model的验证方式有下列区别: ModelForm没有form + Model的低耦合性 ModelF ...

  2. python 全栈开发,Day110(django ModelForm,客户管理之 编辑权限(一))

    昨日内容回顾 1. 简述权限管理的实现原理. 粒度控制到按钮级别的权限控制 - 用户登陆成功之后,将权限和菜单信息放入session - 每次请求时,在中间件中做权限校验 - inclusion_ta ...

  3. [django]modelform实现的多文件上传

    实现效果 代码 models.py from django.db import models import uuid class UUIDTools(object): ""&quo ...

  4. Python的Django框架中forms表单类的使用方法详解

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  5. django modelform中的self.instance

    在stackoverflow上看到一个问题,正好是我疑惑很久的相关问题. [原问题地址]https://stackoverflow.com/questions/18265023/self-instan ...

  6. Python的Django REST框架中的序列化及请求和返回

    Python的Django REST框架中的序列化及请求和返回 序列化Serialization 1. 设置一个新的环境 在我们开始之前, 我们首先使用virtualenv要创建一个新的虚拟环境,以使 ...

  7. [Python] 利用Django进行Web开发系列(一)

    1 写在前面 在没有接触互联网这个行业的时候,我就一直很好奇网站是怎么构建的.现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,但是兴趣终归还是要有的,而且是需要自己动手去实践的 ...

  8. [Python] 利用Django进行Web开发系列(二)

    1 编写第一个静态页面——Hello world页面 在上一篇博客<[Python] 利用Django进行Web开发系列(一)>中,我们创建了自己的目录mysite. Step1:创建视图 ...

  9. VIM for Python and Django Development

    VIM for Python and Django Development VIM-PyDjango created by Programmer for Programmer who work on ...

  10. Window环境下Python和Django的安装

    转载地址:http://blog.csdn.net/haoni123321/article/details/7593821 1.下载python,本文使用python-2.7.2.msi 2.下载dj ...

随机推荐

  1. (zhuan) 自然语言处理中的Attention Model:是什么及为什么

    自然语言处理中的Attention Model:是什么及为什么 2017-07-13 张俊林 待字闺中 要是关注深度学习在自然语言处理方面的研究进展,我相信你一定听说过Attention Model( ...

  2. Visual Studio 安装easyX且导入graphics库后,outtextxy提示未定义标示符

    1.点击 “项目” ,然后点击 “属性”. 2. 然后点击左侧 “配置与属性” 下的 “常规” ,在点击 “字符集” ,选择 “使用多字节字符集” 即可解决问题

  3. 函数嵌套函数传递this值

    <button onclick="demo()(this)">test</button> function demo(){ return function ...

  4. Servlet简介及其生命周期详解

    简介        Servlet生命周期,即阐述Servlet从产生到毁灭的整个过程.         在Servlet产生到消亡的过程中,有三个生命周期函数,初始化方法init(),处理客户请求的 ...

  5. 【转载】常用 Java 静态代码分析工具的分析与比较

    摘自:http://www.oschina.net/question/129540_23043常用 Java 静态代码分析工具的分析与比较 简介: 本文首先介绍了静态代码分析的基本概念及主要技术,随后 ...

  6. SqlParameter 多个参数动态拼接解决参数化问题

    多个参数化是固定比较easy,多个动态的就有点...工作中遇到的问题整理下来分享 ,上代码 SqlParameter[] param = new SqlParameter[] { }; List< ...

  7. leetcode 查找每个元素都出现两次的列表,返回只出现一次的元素

    Given an array of integers, every element appears # twice except for one. Find that single one. clas ...

  8. mysql 事件 按月分表

    /****** 对象: Table Order_201512 脚本日期: 2015/12/18 11:44:23 ******/ /****** 字段数据长度 = 2599 字节 ******/ CR ...

  9. Ubuntu 下 Python自由切换

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo update-alternati ...

  10. VS2010_慢

    ZC:IntelliSense 一旦关闭,代码提示 也就没有了... ZC:IntelliSense 和 IntelliTrace,不是一个东西... 1.http://blog.csdn.net/c ...