解决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装饰器 免去调用父类构造函数的麻烦
May 18 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
用Python写脚本,实现完全备份和增量备份的示例
Apr 29 Python
python3.6数独问题的解决
Jan 21 Python
python for 循环获取index索引的方法
Feb 01 Python
python装饰器简介---这一篇也许就够了(推荐)
Apr 01 Python
FFrpc python客户端lib使用解析
Aug 24 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
python3.8与pyinstaller冲突问题的快速解决方法
Jan 16 Python
python实现感知机模型的示例
Sep 30 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 Python
python 批量压缩图片的脚本
Jun 02 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
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
javascript 验证日期的函数
2010/03/18 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
基于jQuery ligerUI实现分页样式
2016/09/18 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
Angular2使用Augury来调试Angular2程序
2017/05/21 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
2017/09/13 Javascript
JavaScript实现简单音乐播放器
2020/04/17 Javascript
微信小程序实现省市区三级地址选择
2020/06/21 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
[01:21]2018DOTA2亚洲邀请赛4.5采访 打DOTA2也能有女朋友?
2018/04/06 DOTA
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
django model去掉unique_together报错的解决方案
2016/10/18 Python
Python win32com 操作Exce的l简单方法(必看)
2017/05/25 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
利用python将图片版PDF转文字版PDF
2019/05/03 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
指针和引用有什么区别
2013/01/13 面试题
80后职场人的职业生涯规划
2014/03/08 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
身边的榜样活动方案
2014/08/20 职场文书
科学发展观活动总结
2014/08/28 职场文书