je le code de vue suivant:formes Django: Générez vue après le post
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 })
Ce qu'il fait est simple, lorsque la clé d'activation est donnée par l'URL, il va à: profil = userprofile .. .. etc. Mais quand il est pas donné, il charge le formulaire django afin que l'utilisateur peut taper son code d'activation (tout fonctionne bien jusqu'à présent) Mais quand les messages de l'utilisateur sa clé d'activation, il est dans le if len(actkey) != 40:
cela ne devrait pas se produire parce que la clé d'activation est 40 ... Mais comme il montre à nouveau la forme, mais active l'utilisateur aussi bien que je reçois un comportement indésirable ...
Comment puis-je résoudre ce problème?
Merci pour l'aide
Cette fonction a précédé l'introduction de render() et fonctionne de manière similaire, sauf qu'elle ne rend pas la requête disponible dans la réponse. Ce n'est pas recommandé et risque d'être obsolète à l'avenir. consultez la documentation ici: https://docs.djangoproject.com/fr/1.11/topics/http/shortcuts/ – Ralphkay