Самый удобный способ получить связанный объект в Джанго - PullRequest
0 голосов
/ 31 октября 2019

Мне нужно отобразить разные шаблоны для вошедшего в систему пользователя в зависимости от его «типа»: у меня есть пользовательский пользователь с именем 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, но мне кажется, что это избыточное поле, поскольку существует отношение «один к одному»

...