复如何解决Django中复选框选框的传值问题

  介绍

这篇文章主要介绍如何解决Django中复选框复选框的传值问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Django中,html页面通过形式标签来传递表单数据。

对于复选框信息,即复选框类型,点击提交后,数据将提交至视图中的函数。

我们通过request.POST.get()函数来获取来自html页面的值,但是该函数只能得到到选中的最后一个值。

因此想要传递选中的多个值,需要用request.POST.getlist()函数

该函数返回一个列表,可通过迭代来获取列表中每一项的值。

<强>补充知识: <强>解决复选框复选框选中传值,不选中不传值的方案

解决复选框复选框选中传值,不选中不传值的方案

<强>问题描述:

一个形式表单中的结构是这样的:

如何解决Django中复选框复选框的传值问题

则页面显示结果是:

如何解决Django中复选框复选框的传值问题

如上填写数据,经过序列化后的数据是:

(      {“id":“1“,“infoType":“11”,“infoName":“名称1“,“fileIsOpen":“o"},      {“id":“2“,“infoType":“12“,“infoName":“名称2“,“fileIsOpen":“n"}      )

从数据中明显看书fileIsOpen字段的复选框复选框选中则传值是“o",未被选中则传值是“n",其中这是错误的数据,因为被选中传的值是,也就是复说复选框选框选中传值,不选中不传值。那么怎么解决不选中也传值的问题呢?

<强>解决方案:

我们可以设置隐藏域来代替复选框复选框传递数据,具体的页面修改如下:

如何解决Django中复选框复选框的传值问题

复选框复选框对应的点击事件:

如何解决Django中复选框复选框的传值问题

再次输入相同的数据传递的数据是:

(      {“id":“1“,“infoType":“11”,“infoName":“名称1“,“fileIsOpen":“0”;},      {“id":“2“,“infoType":“22”,“infoName":“名称2“,“fileIsOpen":“1“;}      )

从数据可以这次传递的数据是正确的

上述方案存在的问题

如果页面什么不传递,

如何解决Django中复选框复选框的传值问题

则传递的数据是这样的:

(      {“fileIsOpen":“0”;},      {“fileIsOpen":“0”;}      )

因此后台在接受到数据后需要判断集列表合中的对象的必选要素,如果不包含必传要素,就算传入上述数据也是不录入数据库的数据,则可以舍去这些数据。

以上是“如何解决Django中复选框复选框的传值问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

复如何解决Django中复选框选框的传值问题