Django почему возникает ошибка 'RelatedManager' объект не имеет атрибута 'email_confirmed'?

При использовании user.email_confirmed я не получаю никакой ошибки, но при использовании user.userprofile.email_confirmed получаю ошибку RelatedManager. Почему я получаю эту ошибку, когда пытаюсь получить данные пользователя из модели userprofile?

вот мой код:

class UserManagement(AbstractUser):
          is_blog_author = models.BooleanField(default=False)
          is_editor = models.BooleanField(default=False)
          is_subscriber = models.BooleanField(default=False)
          is_customer = models.BooleanField(default=False)
          email_confirmed = models.BooleanField(default=False) #there is no error when obtaining email_confirmed object from abstract user model.  

class UserProfile(models.Model):
      user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,related_name="userprofile")
      email_confirmed = models.BooleanField(default=False)


#I am using this for email verification 
class AccountActivationTokenGenerator(PasswordResetTokenGenerator):
    def _make_hash_value(self, user, timestamp):
        return (
            six.text_type(user.pk) + six.text_type(timestamp) +
            six.text_type(user.userprofile.email_confirmed) #error rising for this line 
            #six.text_type(user.email_confirmed) #I am not getting error if I use this line 
        )

account_activation_token = AccountActivationTokenGenerator()

views.py

....others code 
if user is not None and account_activation_token.check_token(user, token):
            user.userprofile.email_confirmed = True #why it's not working and rising error? 
            #user.email_confirmed = True #it's working 
            user.save()
            .....others code 

Как сказал мне @Nick ODell, мне нужно использовать filter.

Проблема возникла для этих двух наборов запросов: user.userprofile.email_confirmed и user.userprofile.email_confirmed = True после того, как я изменил тему

user.userprofile.filter(email_confirmed=False) и user.userprofile.filter(email_confirmed=False).update(email_confirmed=True) моя проблема решена.

Вернуться на верх