在 Django / Pinax 中,我遇到了这样开头的登录表单:
<form class="login" method="POST" action="">
它工作得很好。因此,我假设 Django 框架中的某些 java 脚本或某些东西将值放入 action 属性中。
所以,我的问题:
- Django如何插入动作?
- 他们为什么这样做?
- 我怎样才能知道这个表格的作用是什么?
更新:我看到这根本不是 Django 的事情,而是大多数浏览器所做的事情。
在 Django / Pinax 中,我遇到了这样开头的登录表单:
<form class="login" method="POST" action="">
它工作得很好。因此,我假设 Django 框架中的某些 java 脚本或某些东西将值放入 action 属性中。
所以,我的问题:
更新:我看到这根本不是 Django 的事情,而是大多数浏览器所做的事情。
在大多数浏览器中,空字符串的操作将表单指向浏览器当前加载的 URL,这是首先为表单提供服务的脚本。
有关具有空操作的表单的有趣见解,请阅读此线程,它为您提供了有关此问题的更新的 HTML5 视角。
页面加载后,该页面加载的 javascript 也可能会根据正在使用该页面的应用程序设置一个操作。
另一种可能的可能性是 javascript 正在处理 onsubmit 事件。这样做可以防止页面重新加载或重定向到特定页面
我想现在回答这个帖子有点晚了。不管怎样,我会从这件事上学到什么。
HttpResponseRedirect
如果表单中没有指定“动作”,那么 Django在相应的视图中查找。
例如,在下面的示例中:
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
# ...
return HttpResponseRedirect('/thanks/')
一旦表单被验证(和处理),页面被重定向到“谢谢”