#django #authentication #activation
Вопрос:
Мне удалось отправить электронное письмо для активации. Однако, когда пользователь нажимает на ссылку, signup_confirmation
поле не меняется.
Вот моя модель:
class UserProfile(models.Model):
GENDER = (
('Male', 'Male'),
('Female', 'Female'),
('Other', 'Other'),
)
user = models.OneToOneField(User, on_delete=models.CASCADE)
phone = models.CharField(blank=True, max_length=20)
address = models.CharField(blank=True, max_length=150)
city = models.CharField(blank=True, max_length=20)
country = models.CharField(blank=True, max_length=20)
image = models.ImageField(blank=True,storage = PrivateMediaStorage())
language = models.CharField(blank=True, max_length=20)
gender = models.CharField(max_length=10, choices=GENDER,default="Other")
signup_confirmation = models.BooleanField(default=False)
def __str__(self):
return self.user.username
def user_name(self):
return self.user.first_name ' ' self.user.last_name ' [' self.user.username ']
‘
Вот мое активированное поле:
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
# checking if the user exists, if the token is valid.
if user is not None and account_activation_token.check_token(user, token):
# if valid set active true
user.is_active = True
# set signup_confirmation true
user.userprofile.signup_confirmation = True
user.save()
login(request, user)
return redirect('activated')
else:
return render(request, 'user/activation_invalid.html')
Почему-то код user.userprofile.signup_confirmation = True
не работает.
Пожалуйста, взгляните