解决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中遍历文件的3个方法
Sep 02 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
PyChar学习教程之自定义文件与代码模板详解
Jul 17 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
Jun 24 Python
python 随机森林算法及其优化详解
Jul 11 Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
python 实现list或string按指定分段
Dec 25 Python
django 模版关闭转义方式
May 14 Python
python与js主要区别点总结
Sep 13 Python
Pandas替换及部分替换(replace)实现流程详解
Oct 12 Python
详解Pytorch显存动态分配规律探索
Nov 17 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
正则表达式语法
2006/10/09 Javascript
使用php4加速网络传输
2006/10/09 PHP
PHP性能优化 产生高度优化代码
2011/07/22 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
Javascript typeof与instanceof的区别
2016/10/18 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
2020/07/22 Javascript
[52:31]VP vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中apply函数的用法实例教程
2014/07/31 Python
在Python中使用Mako模版库的简单教程
2015/04/08 Python
Python continue继续循环用法总结
2018/06/10 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
学习python分支结构
2019/05/17 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
工程招投标邀请书
2014/01/30 职场文书
2014年质检员工作总结
2014/11/18 职场文书
2014年共青团工作总结
2014/12/10 职场文书
Django实现drf搜索过滤和排序过滤
2021/06/21 Python
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL