解决Django中checkbox复选框的传值问题


Posted in Python onMarch 31, 2020

Django 中,html 页面通过 form 标签来传递表单数据。

对于复选框信息,即 checkbox 类型,点击 submit 后,数据将提交至 view 中的函数。

我们通过request.POST.get() 函数来获取来自 html 页面的值,但是该函数只能 get 到选中的最后一个值。

因此想要传递选中的多个值,需要用 request.POST.getlist() 函数

该函数返回一个列表,可通过迭代来获取列表中每一项的值。

补充知识:解决checkbox复选框选中传值,不选中不传值的方案

解决checkbox复选框选中传值,不选中不传值的方案

问题描述:

一个form表单中的结构是这样的:

解决Django中checkbox复选框的传值问题

则页面显示结果是:

解决Django中checkbox复选框的传值问题

如上填写数据,经过序列化后的数据是:

[

{"id":"1","infoType":"11","infoName":"名称1","fileIsOpen":"o"},

{"id":"2","infoType":"12","infoName":"名称2","fileIsOpen":"n"}

]

从数据中明显看书fileIsOpen字段的checkbox复选框选中则传值是"o",未被选中则传值是"n",其中这是错误的数据,因为被选中传的值是on,也就是说checkbox复选框选中传值,不选中不传值。那么怎么解决不选中也传值的问题呢?

解决方案:

我们可以设置隐藏域来代替checkbox复选框传递数据,具体的页面修改如下:

解决Django中checkbox复选框的传值问题

checkbox复选框对应的点击事件:

解决Django中checkbox复选框的传值问题

再次输入相同的数据传递的数据是:

[

{"id":"1","infoType":"11","infoName":"名称1","fileIsOpen":"0"},

{"id":"2","infoType":"22","infoName":"名称2","fileIsOpen":"1"}

]

从数据可以这次传递的数据是正确的

上述方案存在的问题

如果页面什么不传递,

解决Django中checkbox复选框的传值问题

则传递的数据是这样的:

[

{"fileIsOpen":"0"},

{"fileIsOpen":"0"}

]

因此后台在接受到数据后需要判断List集合中的对象的必选要素,如果不包含必传要素,就算传入上述数据也是不录入数据库的数据,则可以舍去这些数据。

以上这篇解决Django中checkbox复选框的传值问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python break语句详解
Mar 11 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
python在不同层级目录import模块的方法
Jan 31 Python
Python实现将数据库一键导出为Excel表格的实例
Dec 30 Python
python的pip安装以及使用教程
Sep 18 Python
Win系统PyQt5安装和使用教程
Dec 25 Python
tensorflow mnist 数据加载实现并画图效果
Feb 05 Python
如何教少儿学习Python编程
Jul 10 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
Python常用模块函数代码汇总解析
Aug 31 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
Python - 10行代码集2000张美女图
May 23 Python
Python文本文件的合并操作方法代码实例
Mar 31 #Python
Python调用接口合并Excel表代码实例
Mar 31 #Python
Python如何批量获取文件夹的大小并保存
Mar 31 #Python
Django使用list对单个或者多个字段求values值实例
Mar 31 #Python
django实现模板中的字符串文字和自动转义
Mar 31 #Python
Python使用graphviz画流程图过程解析
Mar 31 #Python
Django模板之基本的 for 循环 和 List内容的显示方式
Mar 31 #Python
You might like
生成php程序的php代码
2008/04/07 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
基于jquery的代码显示区域自动拉长效果
2011/12/07 Javascript
基于jquery实现等比缩放图片
2014/12/03 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
wxpython学习笔记(推荐查看)
2014/06/09 Python
Python 抓取动态网页内容方案详解
2014/12/25 Python
python变量不能以数字打头详解
2016/07/06 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
详解django三种文件下载方式
2018/04/06 Python
Python字典的核心底层原理讲解
2019/01/24 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
Python的信号库Blinker用法详解
2020/12/31 Python
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
中邮全球便购:中国邮政速递物流
2017/03/04 全球购物
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
煤矿班组长岗位职责
2013/12/29 职场文书
记者岗位职责
2014/01/06 职场文书
陈欧的广告词
2014/03/18 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书