解決Django中checkbox復(fù)選框的傳值問(wèn)題
Django 中,html 頁(yè)面通過(guò) form 標(biāo)簽來(lái)傳遞表單數(shù)據(jù)。
對(duì)于復(fù)選框信息,即 checkbox 類(lèi)型,點(diǎn)擊 submit 后,數(shù)據(jù)將提交至 view 中的函數(shù)。
我們通過(guò)request.POST.get() 函數(shù)來(lái)獲取來(lái)自 html 頁(yè)面的值,但是該函數(shù)只能 get 到選中的最后一個(gè)值。
因此想要傳遞選中的多個(gè)值,需要用 request.POST.getlist() 函數(shù)
該函數(shù)返回一個(gè)列表,可通過(guò)迭代來(lái)獲取列表中每一項(xiàng)的值。
補(bǔ)充知識(shí):解決checkbox復(fù)選框選中傳值,不選中不傳值的方案
解決checkbox復(fù)選框選中傳值,不選中不傳值的方案
問(wèn)題描述:
一個(gè)form表單中的結(jié)構(gòu)是這樣的:

則頁(yè)面顯示結(jié)果是:

如上填寫(xiě)數(shù)據(jù),經(jīng)過(guò)序列化后的數(shù)據(jù)是:
[
{"id":"1","infoType":"11","infoName":"名稱(chēng)1","fileIsOpen":"o"},
{"id":"2","infoType":"12","infoName":"名稱(chēng)2","fileIsOpen":"n"}
]
從數(shù)據(jù)中明顯看書(shū)fileIsOpen字段的checkbox復(fù)選框選中則傳值是"o",未被選中則傳值是"n",其中這是錯(cuò)誤的數(shù)據(jù),因?yàn)楸贿x中傳的值是on,也就是說(shuō)checkbox復(fù)選框選中傳值,不選中不傳值。那么怎么解決不選中也傳值的問(wèn)題呢?
解決方案:
我們可以設(shè)置隱藏域來(lái)代替checkbox復(fù)選框傳遞數(shù)據(jù),具體的頁(yè)面修改如下:

checkbox復(fù)選框?qū)?yīng)的點(diǎn)擊事件:

再次輸入相同的數(shù)據(jù)傳遞的數(shù)據(jù)是:
[
{"id":"1","infoType":"11","infoName":"名稱(chēng)1","fileIsOpen":"0"},
{"id":"2","infoType":"22","infoName":"名稱(chēng)2","fileIsOpen":"1"}
]
從數(shù)據(jù)可以這次傳遞的數(shù)據(jù)是正確的
上述方案存在的問(wèn)題
如果頁(yè)面什么不傳遞,

則傳遞的數(shù)據(jù)是這樣的:
[
{"fileIsOpen":"0"},
{"fileIsOpen":"0"}
]
因此后臺(tái)在接受到數(shù)據(jù)后需要判斷List集合中的對(duì)象的必選要素,如果不包含必傳要素,就算傳入上述數(shù)據(jù)也是不錄入數(shù)據(jù)庫(kù)的數(shù)據(jù),則可以舍去這些數(shù)據(jù)。
以上這篇解決Django中checkbox復(fù)選框的傳值問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Django Sitemap 站點(diǎn)地圖的實(shí)現(xiàn)方法
這篇文章主要介紹了Django Sitemap 站點(diǎn)地圖的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Python連接SQLite數(shù)據(jù)庫(kù)操作實(shí)戰(zhàn)指南從入門(mén)到精通
在Python中使用SQLite進(jìn)行數(shù)據(jù)庫(kù)操作時(shí),我們將深入研究SQLite數(shù)據(jù)庫(kù)的創(chuàng)建、表格管理、數(shù)據(jù)插入、查詢(xún)、更新和刪除等關(guān)鍵主題,幫助你全面了解如何使用SQLite進(jìn)行數(shù)據(jù)庫(kù)操作2023-11-11
tkinter高級(jí)布局之PanedWindow和notebook詳解
本文主要介紹了tkinter中的兩種布局控件,分別是可以動(dòng)態(tài)劃分子控件的PanedWindow,和提供了選項(xiàng)卡工具的notebook,感興趣的小伙伴可以學(xué)習(xí)一下2023-08-08
Python Flask自定義URL路由參數(shù)過(guò)濾器的方法詳解
Flask是一個(gè)輕量級(jí)的Python Web應(yīng)用框架,它允許開(kāi)發(fā)者以一種簡(jiǎn)潔明了的方式來(lái)構(gòu)建Web應(yīng)用,Flask自定義URL的主要功能在于使得開(kāi)發(fā)者能夠通過(guò)簡(jiǎn)單的路由規(guī)則來(lái)自定義應(yīng)用程序的URL結(jié)構(gòu),本文給大家介紹了Python Flask自定義URL路由參數(shù)過(guò)濾器的方法,需要的朋友可以參考下2024-07-07
Python Scrapy多頁(yè)數(shù)據(jù)爬取實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Python Scrapy多頁(yè)數(shù)據(jù)爬取實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
輕松掌握python的dataclass讓你的代碼更簡(jiǎn)潔優(yōu)雅
本文總結(jié)了幾個(gè)我在使用Python的dataclass時(shí)常用的技巧,dataclass裝飾器可以幫助我們簡(jiǎn)化數(shù)據(jù)類(lèi)的定義過(guò)程,包括設(shè)置默認(rèn)值、隱藏敏感信息、設(shè)置只讀對(duì)象以及將其轉(zhuǎn)化為元組和字典,通過(guò)使用dataclass,我們可以更高效地進(jìn)行數(shù)據(jù)分析和處理,感興趣的朋友跟隨小編一起看看吧2025-01-01
使用wxpy實(shí)現(xiàn)自動(dòng)發(fā)送微信消息功能
這篇文章主要介紹了使用wxpy實(shí)現(xiàn)自動(dòng)發(fā)送微信消息功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
如何利用Python開(kāi)發(fā)一個(gè)簡(jiǎn)單的猜數(shù)字游戲
這篇文章主要給大家介紹了關(guān)于如何利用Python開(kāi)發(fā)一個(gè)簡(jiǎn)單的猜數(shù)字游戲的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
pytorch使用tensorboardX進(jìn)行l(wèi)oss可視化實(shí)例
今天小編就為大家分享一篇pytorch使用tensorboardX進(jìn)行l(wèi)oss可視化實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
python UDF 實(shí)現(xiàn)對(duì)csv批量md5加密操作
這篇文章主要介紹了python UDF 實(shí)現(xiàn)對(duì)csv批量md5加密操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01

