解决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实现的概率分布运算操作示例
Aug 14 Python
Python标准库之itertools库的使用方法
Sep 07 Python
python 实现登录网页的操作方法
May 11 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
便捷提取python导入包的属性方法
Oct 15 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
手写一个python迭代器过程详解
Aug 27 Python
解决django接口无法通过ip进行访问的问题
Mar 27 Python
简单了解pytest测试框架setup和tearDown
Apr 14 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
自学python用什么系统好
Jun 23 Python
Python趣味爬虫之用Python实现智慧校园一键评教
May 28 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定时自动生成静态HTML的实现代码
2010/06/20 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
php中adodbzip类实例
2014/12/08 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
javascript 精粹笔记
2010/05/09 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
2015/12/30 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
JavaScript 节流函数 Throttle 详解
2016/07/04 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
JavaScript如何实现元素全排列实例代码
2019/05/14 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
Python抓取电影天堂电影信息的代码
2016/04/07 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
蔻驰美国官网:COACH美国
2016/08/18 全球购物
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
护士求职信
2014/07/05 职场文书
县委务虚会发言材料
2014/10/20 职场文书
2014年评职称工作总结
2014/11/20 职场文书
浅谈如何提高PHP代码质量之端到端集成测试
2021/05/28 PHP