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

InformationsquelleAutor Bloeper | 2010-01-05
Schreibe einen Kommentar