У меня следующий код просмотра:
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 } )
То, что он делает, просто, когда ключ активации передается через URL, он переходит к:
профиль = userprofile .... и т. д.
Но когда он не указан, он загружает форму django, чтобы пользователь мог набрать его код активации (пока все работает хорошо)
Но когда пользователь публикует свой ключ активации, он приходит в if len( actkey ) != 40:
Этого не должно быть, потому что ключ активации равен 40 ... Но, поскольку он снова показывает форму, но также активирует пользователя, я получаю нежелательное поведение ...
Как я могу это исправить?
Спасибо за помощь