2014-10-11 88 views
0

我不處理網絡的東西,這是即將變得明顯。 我正在嘗試向我正在構建的網站添加一個年齡驗證程序 - 一些簡單的,帶有yes或no的下拉框。
我想通過Http GET傳遞表單值並通過視圖驗證它是最簡單的方法。
一開始只通過的輸入「姓名」傳入我的形式,例如:Django Web表單驗證

<form action="/validate/" method="get">    
<select name="validatorBox"> 
<option name="yes" value="yes"> 
<option name="no" value="no"> 
</select> 
<input type="submit" value="I am 21 years of age or older"> 

「validatorBox」的名稱被通過,沒有選項的名稱傳遞。與所有其他表單輸入類型相同,從不只是名稱。
那麼,我可以忽略哪些簡單的事情,或者有更好的方法來做到這一點?

視圖將類似於此:

def search(request): 
if 'yes' in request.GET: 
    return render(request, 'main.html') 
else: 
    return render(request, 'validate.html') 

回答

2

這就是select元素是如何工作的:它提交一個值,這是選擇的子選項的值,對的選擇自己的名字。選項元素實際上沒有名稱屬性。

另一個問題是request.GET是一個字典,而'foo' in dict總是檢查,而不是值。您將需要實際檢查與正確的鍵關聯的值:

if request.GET.get('validatorBox') == 'yes': 

最後,你可能想看看Django's forms framework,而不是手工做這一切。

+0

輝煌,謝謝。我知道這是我失蹤的事情。 – user2975106 2014-10-11 18:44:18