没有动作的HTML表单

没有动作的HTML表单,html,django,forms,django-forms,Html,Django,Forms,Django Forms,在Django/Pinax中,我遇到了这样的登录表单: <form class="login" method="POST" action=""> 它工作得非常好。因此,我假设某个java脚本或Django框架中的某个东西正在将值放入action属性中。 所以,我的问题是: Django如何插入操作 他们为什么这样做 我怎样才能知道这个表单的作用是什么 更新:我发现这根本不是Django的事情,而是大多数浏览器都会做的事情。在大多数浏览器中,有一个空字符串的动作会将表单指向

在Django/Pinax中,我遇到了这样的登录表单:

<form class="login" method="POST" action="">

它工作得非常好。因此,我假设某个java脚本或Django框架中的某个东西正在将值放入action属性中。
所以,我的问题是:

  • Django如何插入操作
  • 他们为什么这样做
  • 我怎样才能知道这个表单的作用是什么

更新:我发现这根本不是Django的事情,而是大多数浏览器都会做的事情。

在大多数浏览器中,有一个空字符串的动作会将表单指向浏览器当前加载的URL,这是最初为表单提供服务的脚本。

也有可能,加载此页面的javascript在加载页面后会根据使用该页面的应用程序设置操作


另一种可能的情况是javascript正在处理onsubmit事件。有人可能会这样做,以防止页面重新加载或重定向到特定页面

以获得有关读取空动作表单的有趣见解,从而为您提供有关此问题的最新HTML5视角。

我想现在回答此帖子有点晚了。不管怎么说,我会告诉你我学到了什么

如果表单中没有指定“action”,那么Django会在相应的视图中查找
HttpResponseRedirect

例如,在下面的示例中:

if form.is_valid(): # All validation rules pass
        # Process the data in form.cleaned_data
        # ...
        return HttpResponseRedirect('/thanks/')

表单验证(和处理)后,页面将重定向到“谢谢”

ah。我不知道。那么这仅仅是懒惰还是依赖它是一种良好的实践呢?我认为这是一种良好的实践,因为您减少了代码中URL的数量。但我宁愿不采取任何行动。有没有浏览器需要空动作?没有动作属性的表单在所有主流浏览器中都可以正常工作。但是,如果要验证HTML,则必须使用action属性。