2014-10-11 59 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