по умолчанию каждое поле OneToOneField
или ForeignKey
будет доступно через связанное с ним имя (в данном случае пользователь).
Вы не определили ни одного поля related_name в своей модели AppUser для поля пользователяПолучите доступ к нему, как показано ниже:
user.appuser_set.key
Как вы заметили, это будет нижний регистр имени класса плюс _.
Или вы можете добавить его вручную следующим образом:
class AppUser(models.Model):
user = models.OneToOneField(User, related_name='app_user')
key = models.CharField(max_length= 32, default="")
def __str__(self):
return self.user.username
и в ваших кодах views.py или в любом другом месте доступ к AppUser осуществляется с user
, например:
user.app_user # This will get app_user connected to user instance
user.app_user.key # this will get proper key value for that appUser of User
Обновление: Также обратите внимание, что до тех пор, пока выне создавал и экземпляр AppUser для каждого пользователя, выполнение user.app_user
вызовет ошибку.
Для таких ситуаций я обычно создаю сигнал, который будет срабатывать на post_save
пользователя.Это означает, что сразу после создания пользователя для этого пользователя будет создан новый экземпляр AppUser.