Текущий Django - 1,9, и вот некоторые обновления устаревшего принятого ответа
- use
models.OneToOneField(User)
- add
related_name='profile'
- use
.__str__()
и .format()
для Python 3
примерно так
class UserProfile(models.Model):
user = models.OneToOneField(User, related_name='profile')
location = models.CharField(max_length=140)
gender = models.CharField(max_length=140)
...
def __str__(self):
return 'Profile of user: {}'.format(self.user.username)
Используя related_name
, вы можете легко получить доступ к профилю пользователя, например, для request.user
request.user.profile.location
request.user.profile.gender
Нет необходимости в дополнительных поисках.