HTML-формы без действий

В Django/Pinax я столкнулся с формой входа, которая начинается следующим образом:

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

Это работает отлично. Поэтому я предполагаю, что какой-то java- script или что-то в структуре Django помещает значение в атрибут action.

Итак, мои вопросы:

  • Как Django вставляет действие?
  • Почему они так делают?
  • Как я могу узнать, что такое действие этой формы?

Обновление: я вижу, что это вообще не Django, но что делает большинство браузеров.

Ответ 1

Наличие действия пустой строки в большинстве браузеров указывает форму на URL-адрес, загруженный браузером, который является script, который служил форме в первую очередь.

Ответ 2

Для интересного понимания форм с пустыми действиями читайте этот поток, который дает вам обновленную HTML5-перспективу по этому вопросу.

Ответ 3

Также возможно, что javascript, загруженный этой страницей, может устанавливать действие после загрузки страницы в зависимости от того, какое приложение использует эту страницу.

Другая вероятная возможность заключается в том, что javascript обрабатывает событие onsubmit. Это можно сделать, чтобы предотвратить перегрузку страницы или перенаправление на определенную страницу.

Ответ 4

Я думаю, что немного поздно ответить на этот пост. В любом случае, я узнаю об этом.

Если "действие" не указано в формах, тогда Django просматривает HttpResponseRedirect в соответствующем представлении.

Например, в следующем примере:

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

Однажды форма проверяется (и обрабатывается), страница перенаправляется на "спасибо"