django form 对象is_bound属性
问题:
如果判断一个form实例中有没有数据?
bug方法:
通过form实例的is_valid()方法来验证
1、Form类的定义
- class YourName(Form):
- your_name = CharField(max_length=10)
2、template直接渲染的上下文中的msg变量
- {% extends 'learning/index.html' %}
- {% block container %}
- {{ msg }}
- {% endblock %}
3、view中的代码
- def show_messsage(request):
- f = YourName()
- return render(request,'learning/message.html',context={'msg':"the form has data = {0}".format(f.is_valid())})
查看效果
可以看到页面中显示的是“the form has data = False” 看起来好像是判断正确了、但是问题并没有结束;这个“False”
只是一个巧合。
我们把代码改一下用来模拟一下用户的提交,假设用户提交了“12345678901234” 注意这里有14个字符。
可以看到数据是有的、可能通过is_valid()是分辨不出来的。
正确的做法:
1、通过form对象的is_bound属性来分辨form中是否有数据
- def show_messsage(request):
- data={'your_name':''}
- f = YourName(data)
- return render(request,'learning/message.html',context={'msg':"the form has data = {0}".format(f.is_bound)})
is_bound 当form对象中有数据时能正确判断数据是有的、而这个有与数据是否能通过校验无关。
2、通过一个没有数据的form实例测试is_bound的效果
- def show_messsage(request):
- f = YourName()
- return render(request,'learning/message.html',context={'msg':"the form has data = {0}".format(f.is_bound)})
总结:
form对象的is_bound用于测试form中有没有数据、它并不关心数据能不能通过校验。
-----------------------------------------------------------------------------------------------
django form 对象is_bound属性的更多相关文章
- js进阶-9-3/4 form对象有哪些常用属性
js进阶-9-3/4 form对象有哪些常用属性 一.总结 一句话总结: 1.一般html标签有哪些常用属性:name id value 2.form对象有哪些常用属性(特有):action meth ...
- 获取form对象
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Form 对象的集合
<html> <body id="myBody" class="myBody"> <form id="myForm&qu ...
- JavaScript Image对象 / Tabel对象 / Select对象 / Form对象
JavaScript Image / Tabel / Select / Form 对象 版权声明:未经授权,严禁转载! Image 对象 Image 对象,代表 <img> 元素. < ...
- Django---CBV和FBV的使用,CBV的流程,给视图加装饰器,Request对象方法,属性和Response对象,form表单的上传
Django---CBV和FBV的使用,CBV的流程,给视图加装饰器,Request请求对象方法,属性和Response响应对象,form表单的上传 一丶CBV和FBV 在Django中存 ...
- Extjs在form展示后台单个对象的属性
目的:写一个按钮事件,点击时弹出一个win窗体,里面镶嵌form表单,并且展示后台单个对象的属性 先来后台: public void find(){ String clientId = request ...
- Django Form的学习
django.forms 是Django处理form的库 本质上可以直接通过对HttpRequest达到同样的效果,但是django.from带来更便捷的处理方式.功能有几点 通过form类 ...
- django Form表单的使用
Form django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm 关于django的表单系统,主要分两种 基于django.forms.Form ...
- django form表单验证
一. django form表单验证引入 有时时候我们需要使用get,post,put等方式在前台HTML页面提交一些数据到后台处理例 ; <!DOCTYPE html> <html ...
随机推荐
- Shiro整合springboot,freemaker,redis(含权限系统完整源码)
区块链技术联盟 2018-02-08 17:06:40 目录 一.导语 二.shiro功能介绍 三.shiro详解 四.shiro实战案例分享 五.系统配置 六.其他 一.导语 今天推荐给大家一个非常 ...
- Python2.7.14安装和pip配置安装及虚拟环境搭建
目录 前言 1 Python2.7.14安装 2 pip配置安装 3 虚拟环境安装 前言 今天在搭建阿里云服务器,需要安装Python相关环境,之前在本机都已经安装过两遍,今天又来安装一遍,安装具 ...
- Struts 2相关配置与基本操作演示(案例Demo)
基本介绍 Struts 2 Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架.其全新的Struts 2 ...
- JavaWeb开发之普通图片验证码生成技术与算术表达式验证码生成技术
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6134649.html 另:算术验证码生成的JSP.Servlet实现均已移植github:https:/ ...
- C/C++中extern关键字详解(转)
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义.此外extern也可用来进行链接指定. 也就是说extern ...
- 〖Linux〗Kubuntu设置打开应用时就只在打开时的工作区显示
有没有遇到一种情况: 在工作区1打开了应用程序Google Chrome: 这个时间感觉它打开速度比较慢,就快捷键切换到工作区2了: 结果这个时候,Google Chrome就直接在工作区2打开,多不 ...
- nginx 代理静态资源报 403
用tomcat跑了一个上传服务,文件上传到指定nginx的html目录,用nginx来代理静态资源,结果上传能够成功,访问却报403. 解决办法,将html的拥有者改成nobody: chown -R ...
- 转: Ogre实现无缝地图要改的地方 记下来 用的时候可以看
//OgreTerrainQuadTreeNode.hSceneNode* getLocalSceneNode(){return mLocalNode;} //OgreTerrain.huint16 ...
- JAVA微信扫码支付模式二功能实现完整例子
概述 本例子实现微信扫码支付模式二的支付功能,应用场景是,web网站微信扫码支付.实现从点击付费按钮.到弹出二维码.到用户用手机微信扫码支付.到手机上用户付费成功.web网页再自动调整到支付成功后的页 ...
- JavaMail 接收邮件及删除
解析读取收件箱中邮件: import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io. ...