2013-10-10 29 views
1

如果我有以下的html:如何知道在python - django中是否選中了一個複選框?

<form method ='GET' action='/search'> 
<input type='checkbox' name='box1' id='box1'> Option 1 
<input type='checkbox' name='box2' id='box2'> Option 2 
<input type='submit'> 
</form> 

我怎麼會知道的複選框中的一個是否在Python/Django的選擇(TRUE/FALSE)?我正在Django編寫一個應用程序,我想根據選中的複選框來顯示特定的結果。

非常感謝提前!

回答

4

如果它存在於request.GET中,則檢查它是否被檢查,如果不是,則檢查它。

看到了這個問題:Does <input type="checkbox" /> only post data if it's checked?

編輯:例如檢查:

if 'box1' in request.GET: 
    # checked! 
    ... 
else 
    # not checked (or the form was never submitted.)! 
    ... 
+0

感謝您的回答,但是當我使用它時,它不記得我檢查了它。有可能我必須從method =「get」更改爲method =「post」? – vcvd

+0

不,這不應該是一個問題。我可以看到你的視圖文件嗎? – jproffitt

+0

'DEF複選框(請求): 濾波器= 「」 味= [ 「暗」, 「白」, 「牛軋糖」] 用於風味F: 如果f在request.GET中: 濾波器+ = F 返回HttpResponse(render_to_string('page.html',{'filter':filter}))' – vcvd

3

一對夫婦的方式來做到這一點。

if not request.GET.get('checkboxName', None) == None: 
    # Checkbox was selected 
    selectedFunction() 
else: 
    notSelectedFunction() 

# Another Way 
if 'checkbox' in request.GET: 
    # Checkbox was selected 
    function() 
else: 
    notSelectedFunction() 

現在,如果你正試圖從提交的表單獲取數據只是從GET.get改變POST.get - 我會建議,如果你正在嘗試「記住」什麼選擇將其存儲在一個會話或cookie中。會話將更容易設置,並且與Cookie相同。但是,如果這是爲了「記住我」,cookie將是記住數據的最佳選擇。

相關問題