How to access first_name ad last_name in extended User model

56 views
Skip to first unread message

pastrufazio

unread,
Jul 24, 2019, 8:17:34 AM7/24/19
to Django users
Hi all,

newbie here!


I cannot access self.user.first_name and self.user.last_name in my ClientProfile class, this is the error message:

Instance of 'OneToOneField' has no 'first_name' member
Instance of 'OneToOneField' has no 'last_name' member


What am I doing wrong?

class ClientProfile(models.Model):
    user = models.OneToOneField(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
    )
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    created_date = models.DateTimeField(auto_now_add=True)
    modified_date = models.DateTimeField(auto_now=True)

    def __str__(self):
      return '{} {}'.format(self.user.first_name, self.user.last_name) '



class ClientProfile(models.Model):
    user
= models.OneToOneField(
        settings
.AUTH_USER_MODEL,
        on_delete
=models.CASCADE,
   
)
    id
= models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    created_date
= models.DateTimeField(auto_now_add=True)
    modified_date
= models.DateTimeField(auto_now=True)

   
def __str__(self):
     
return '{} {}'.format(self.user.first_name, self.user.last_name) '

with this in settings.py

AUTH_USER_MODEL = 'accounts.CustomUser' # Overriding the default User model

Lim Kai Wey

unread,
Jul 24, 2019, 8:48:44 AM7/24/19
to django...@googlegroups.com
To pastufrazio,

I believe instead of OneToOneField, you should try using,

user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
    )

Since the authentication is imported.

Regards,
Kai Wey
Reply all
Reply to author
Forward
0 new messages