Django Formen: reload-Ansicht nach dem post
Habe ich die folgenden anzeigen-code:
def activate( request = '', actkey = "" ):
message = ""
if len( actkey ) != 40:
message += str( len(actkey))
if request.method == 'POST':
form = ActivateForm( request.POST )
if form.is_valid():
actkey = request.POST['actkey']
activate( '', actkey )
else:
form = ActivateForm()
else:
profile = userprofile.objects.get( actkey = actkey )
user = User.objects.get( id = profile.user_id )
user.is_active = True
user.save()
profile.actkey = ""
profile.save()
message += "Uw account is succesvol geactiveerd."
return render_to_response( 'profile/register.html', { 'message' : message } )
return render_to_response( 'profile/register.html', { 'message' : message, 'form' : form } )
Was es tut, ist einfach, wenn der Aktivierungs-Schlüssel ist gegeben durch die URL, es geht um:
Profil = userprofile.... etc.
Aber wenn es die nicht gegeben, es lädt die django-form, so kann der Benutzer geben Sie den Aktivierungs-code (funktioniert alles so weit gut)
Aber wenn der user postet seine Aktivierungs-Schlüssel, es kommt in der if len( actkey ) != 40:
Das sollte nicht passieren, weil der Aktivierungsschlüssel ist 40... Aber da zeigt er die form wieder, sondern aktiviert den Benutzer, wie auch ich bekomme unerwünschte Verhalten...
Wie kann ich dieses Problem beheben?
Danke für die Hilfe
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich könnte missverstehen, Ihre intension.
Aber ich denke, wenn die form gültig ist, sollten Sie etwas wie das:
ie. weglassen des form-Objekts, nachdem Sie den Benutzer aktivieren.
Sollten Sie redirect nach erfolgreichem senden des Formulars
Es ist beides nicht ganz das, was ich suchte, aber ich fixe es so:
Danke für die Antworten 🙂