解决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中列表、字典、元组、集合数据结构整理
Nov 20 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
Python补齐字符串长度的实例
Nov 15 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
Python filter()及reduce()函数使用方法解析
Sep 05 Python
python Matplotlib数据可视化(1):简单入门
Sep 30 Python
如何利用Python matplotlib绘制雷达图
Dec 21 Python
如何用Python提取10000份log中的产品信息
Jan 14 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
Jan 26 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 Python
Python爬虫制作翻译程序的示例代码
Feb 22 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
建站常用13种PHP开源CMS比较
2009/08/23 PHP
php垃圾代码优化操作代码
2010/08/05 PHP
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
2016/12/08 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
2019/09/15 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
python检测服务器端口代码实例
2019/08/31 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
西雅图的买手店:Totokaelo
2019/10/19 全球购物
优秀共产党员先进事迹
2014/01/27 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
爱情保证书
2015/01/17 职场文书
毕业论文致谢范文
2015/05/14 职场文书
离婚财产分割协议书
2015/08/11 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
MySQL分布式恢复进阶
2022/07/23 MySQL