Мне нужно отобразить разные шаблоны для вошедшего в систему пользователя в зависимости от его «типа»: у меня есть пользовательский пользователь с именем Users
для хранения общих полей и три разных типа пользователей с именами Admins
, Publishers
иCopywriters
, связанный с таблицей «Пользователи» с отношением «один к одному»
class Users(AbstractUser):
# fields
class Admins(models.Model):
user = models.OneToOneField(Users, on_delete=models.CASCADE)
# extra fields for admins...
class Publishers(models.Model):
user = models.OneToOneField(Users, on_delete=models.CASCADE)
# extra fields for publishers...
class Copywriters(models.Model):
user = models.OneToOneField(Users, on_delete=models.CASCADE)
# extra fields for copywriters...
Какой самый удобный способ получения связанных полей зарегистрированного пользователя? Или, другими словами, как я могу получить объект администратора, издателя или копирайтера, связанный с зарегистрированным пользователем?
Моя первоначальная идея состояла в том, чтобы добавить столбец в таблицу Users
с именем user_type
, но мне кажется, что это избыточное поле, поскольку существует отношение «один к одному»