#python-3.x #django #email-verification
#python-3.x #django #проверка электронной почты
Вопрос:
Я написал некоторый код в django о регистрации с помощью электронного письма с подтверждением, и электронное письмо было отправлено мне, и я подтвердил это, но мой аккаунт не активировался. Я не знаю, связана ли проблема с моей функцией активации или с какой ошибкой я получаю :
и это моя функция активации:
def activate(request, uidb64, token):
try:
uid = force_text(urlsafe_base64_decode(uidb64))
user = User.objects.get(pk=uid)
except(TypeError, ValueError, OverflowError, User.DoesNotExist):
user = None
if user is not None and acc_activation.check_token(user, token):
user.is_active = True
user.save()
login(request, user)
# return redirect('home')
return HttpResponse('Thank you for your email confirmation. Now you can login your account.')
else:
return HttpResponse('Activation link is invalid!')
и мой activation_email.html код :
{% autoescape off %}
Hi {{ user.username }},
pleace click here to confirm your registration,
http://{{ domain }}{% url 'activate' uidb64=uid token=token %}
{% endautoescape %}
Ответ №1:
Добавьте user.profile.email_confirmed = True
в свою логику.
if user is not None and acc_activation.check_token(user, token):
user.is_active = True
user.profile.email_confirmed = True
user.save()
login(request, user)
# return redirect('home')
return HttpResponse('Thank you for your email confirmation. Now you can login your account.')