Ich erstelle ein Formular mit Django Auth Formulare UserCreationForm und es funktioniert ohne 'Aktion' innerhalb. Warum funktioniert es?Warum benötigt ein Formular keine Aktion? 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>
Vielen Dank. Ich habe noch eine Frage. Funktioniert es auf alten Browsern (wie IE5-8). Oder in der Praxis besser "Aktion" klar definieren? –
wow, das alte ... :-) Um sicher zu sein, füge die Aktion hinzu, es wird nicht weh tun. In HTML4 ist das Attribut 'action' obligatorisch und sollte ein gültiger URI sein, andernfalls ist das Verhalten offiziell undefiniert. Ich denke eine leere Zeichenfolge als Aktion ist in den meisten Browsern für eine lange Zeit auf die aktuelle URL zurückgegangen, aber ich würde meine Wetten nicht auf IE5-8 machen. – dirkgroten