解决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读写ini文件的方法
May 28 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
Sep 19 Python
git使用.gitignore设置不生效或不起作用问题的解决方法
Jun 01 Python
python实现识别手写数字 python图像识别算法
Mar 23 Python
Python使用pyh生成HTML文档的方法示例
Mar 10 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
Dec 17 Python
Python实现深度遍历和广度遍历的方法
Jan 22 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
详解用 python-docx 创建浮动图片
Jan 24 Python
解决Python import .pyd 可能遇到路径的问题
Mar 04 Python
python plt.plot bar 如何设置绘图尺寸大小
Jun 01 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
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
php像数组一样存取和修改字符串字符
2014/03/21 PHP
yii框架配置默认controller和action示例
2014/04/30 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
prototype class详解
2006/09/07 Javascript
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
初学者AngularJS的环境搭建过程
2017/10/27 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
2020/03/17 Javascript
ReactRouter的实现方法
2021/01/25 Javascript
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
GWT的应用有哪两种部署模式
2012/12/21 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
幼教简历自我评价
2014/01/28 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书