在 Django 中编码,使用表单。我遇到了一个问题,如果表单是 GET,那么每个字段总是显示错误“此字段是必需的。”,但如果表单是 POST,则问题不存在。这是一个简单的例子(部分代码),
视图.py:
def login(request):
if request.method == 'GET':
form = RegisterForm (request.GET)
else:
form = RegisterForm ()
return render_to_response('register.html', locals(), context_instance=RequestContext(request))
注册.html:
<form action = "" method = "GET">
<table style = "border: none;">
<tr>
<td class = "login"><strong>email:</strong></td>
<td class = "login">{{ form.email }}</td>
<td><span class = "error">{{ form.errors.email }}</span></td>
</tr>
...
</table>
</form>
如果您将所有“GET”更改为“POST”,一切都很好。否则,“form.errors.email”将始终抛出“此字段为必填项”。错误。
另一件奇怪的事情......我似乎没有看到任何使用 request.GET 启动的表单对象。Django Book 2.0 仅显示使用 request.POST 启动的表单对象。我在这里缺少什么吗?
非常感谢任何提示。
编辑:感谢克雷格和伊格纳西奥的提示。但是,我的问题是,无论我对这个表单做什么,无论是 GET 还是 POST,在表单中使用 GET 总是会给我关于“必填字段”的表单错误。这就是我不理解的机制。对此的任何帮助将不胜感激,谢谢。