Django:表单GET具有“必填字段”错误,而POST则没有
||
在Django中使用表格进行编码。我遇到一个问题,如果表单是GET,则每个字段总是显示错误“此字段是必填项。”,但是如果表单是POST,则不存在此问题。这是一个简单的示例(部分代码),
views.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))
register.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都会给我关于“字段必填”的表单错误。那是我不了解的机制。谢谢任何帮助。
没有找到相关结果
已邀请:
3 个回复
屉杆绊
语句,因此它会自动弹出验证错误,以将空数据插入字段。您实际上从未到达
线 查看django-debug-toolbar,这是一个非常有用的工具栏,它使您可以查看请求类型和requet变量。
博沮富教全
如果要发布到同一页面,则不需要您的操作值。另外,如果您正在使用POST(应该使用),那么您应该在表单中使用{%csrf_token%}。
敦肌