解决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算法学习之基数排序实例
Dec 18 Python
对于Python的框架中一些会话程序的管理
Apr 20 Python
django 按时间范围查询数据库实例代码
Feb 11 Python
Django2.1.3 中间件使用详解
Nov 26 Python
python实现windows壁纸定期更换功能
Jan 21 Python
python实现Virginia无密钥解密
Mar 20 Python
django mysql数据库及图片上传接口详解
Jul 18 Python
Python3.9又更新了:dict内置新功能
Feb 28 Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
May 04 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 Python
Python 使用office365邮箱的示例
Oct 29 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
法压式咖啡之制作法
2021/03/03 冲泡冲煮
PHP 开发工具
2006/12/06 PHP
php INI配置文件的解析实现分析
2011/01/04 PHP
PHP中读写文件实现代码
2011/10/20 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
nginx 设置多个站跨域
2021/03/09 Servers
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
JS中如何实现点击a标签返回页面顶部的问题
2017/01/19 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
实例讲解python函数式编程
2014/06/09 Python
Python常用算法学习基础教程
2017/04/13 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
Python中random模块常用方法的使用教程
2020/10/04 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
几个Shell Script面试题
2014/04/18 面试题
节水标语大全
2014/06/11 职场文书
幼儿学前班评语
2014/12/29 职场文书
大学生入党自传2015
2015/06/26 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
人民调解协议书
2016/03/21 职场文书
Java实现注册登录跳转
2022/06/16 Java/Android
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android