问题:

  如果判断一个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':'12345678901234'}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属性相关推荐

  1. 前端:JS/32/form对象(表单)(form对象的属性,方法和事件),受返回值影响的两个事件(onclick事件,onsubmit事件),获取表单的元素对象的三种方式,表单的提交和验证方法总结

    form 对象(表单) 一个<form>标记,就是一个<form>对象: 1,form对象的属性 name :表单的名称,主要用来让JS来控制表单: action :表单的数据 ...

  2. HTML DOM教程 22-HTML DOM Form 对象

    HTML DOM教程 22-HTML DOM Form 对象 1:Form 对象 Form 对象代表一个 HTML 表单. 在 HTML 文档中 <form> 每出现一次,Form 对象就 ...

  3. 总结django form

    总结django form 一.django forms 1.特点 django forms是Django的表单处理库.依赖HttpRequest,它具有如下特点: (1)快速自动生成HTML表单: ...

  4. Django Form

    Form组件 创建Form类时,主要涉及到 [字段] 和 [插件],字段用于对用户请求数据的验证,插件用于自动生成HTML form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进 ...

  5. Django Request对象3.3

    HttpReqeust对象 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象 视图函数的第一个参数是HttpRequest对象 在django.http模块中定义了HttpR ...

  6. Django Form和ModelForm组件

    Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...

  7. Django - Form和ModelForm

    一. form介绍 1.生成页面可用的HTML标签 2. 提供input可以提交数据 3. 对用户提交的数据进行校验 4. 保留上次输入内容 5. 提供错误信息 二. 普通方式书写注册功能 <! ...

  8. Django Form ModelForm modelfromset

    forms 组件 Form 组件 form表单完成的事情 提供input可以提交数据 对提交的数据进行校验 提供错误提示 定义form组件 from django import forms class ...

  9. Django form模块使用心得

    http://forreal.blog.51cto.com/3205122/586035 最近用Django 写了一个网站,现在来分享一下对Django form 的一些心得. 一,创建一个表单 创建 ...

最新文章

  1. 《自然》:修复AI神经网络的缺陷
  2. vscode使用教程python-用VScode配置Python开发环境
  3. 【MYSQL】分组之后获取每组最新的数据
  4. 清华大学刘知远组:基于Prompt Tuning对低维本征任务子空间进行探索
  5. linux文件物理结构,文件物理结构和存储空间管理
  6. eclipse插件egit安装使用
  7. AlfaLaval公司采用低速通风技术冷却数据中心
  8. 如何带领团队“攻城略地”?优秀的架构师这样做
  9. ShardingSphere-Proxy 分库分表 简单示例
  10. 7-1 defer调用
  11. c++ 2条中线焦点_三角形的中线为何交于一点
  12. Zookeeper 概念
  13. c语言怎么把字符串转数组,【转】C语言 字符数组与字符串
  14. 最新小额借贷系统完整源码+附教程文档
  15. 【干货满满】初级银行从业考试《个人理财》重点梳理
  16. python opencv Shi-Tomasi 角点检测和特征跟踪
  17. 2013 CVPR点评
  18. 6个简历模板免费下载网站,资源超多,质量超高!
  19. python读取csv文件表头_Python读取CSV文件
  20. 《程序是怎么跑起来的》第五章学习笔记

热门文章

  1. linux脚本重定向到输入,linux shell输入输出重定向
  2. java风控系统规则引擎_如何设计一套规则引擎系统
  3. java 高并发第三阶段实战_JAVA多线程编程实战视频-第三阶段(共80节)
  4. sql语句没错 mysql.data.dll类型的异常_未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。...
  5. python pexpect telnet_使用python的pexpect模块,实现远程免密登录的示例
  6. java不是有效_单选(2分) 以下哪个不是有效的Java变量名?
  7. 减少访问量_Lazada:唯一一个访问量明显着下降、出现负增长10%的玩家
  8. ii 组合总和_40. 组合总和 II
  9. 【 FPGA 】时钟抖动浅记
  10. 【 C 】字符串查找基础笔记