djangoの認証フォームUserCreationFormを使用してフォームを作成しますが、内部に 'action'がなくても動作します。それはなぜ機能するのですか?フォームに「アクション」は必要ないのはなぜですか? UserCreationForm
views.py
def sign_up(request):
if request.method == 'POST':
form = UserCreationForm(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password1')
user = authenticate(username=username, password=password)
login(request, user)
return redirect('contacts:index')
else:
form = UserCreationForm()
return render(request, 'account/signup.html', {'form': form})
sgnup.html
<h2>Sign up</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Sign up!</button>
</form>
ありがとうございます。もう一つ質問があります。古いブラウザでも動作しますか?(IE5-8など)実際には「行動」を明確に定義する方が良いでしょうか? –
うわー、その古い... :-)確かに、アクションを追加するには、それは傷つくことはありません。 HTML4では、 'action'属性は必須であり、有効なURIでなければなりません。そうでなければ、動作は正式には定義されていません。私はアクションとして空の文字列が長い時間、ほとんどのブラウザで現在のURLに落ちたと思うが、私はIE5 - 8に自分の賭けを配置しないだろう。 – dirkgroten