В настоящее время я изучаю Django, в частности, DRF для создания API, который будет использоваться клиентом веб-приложения.Приложение для учителя, который дает внеклассные занятия по математике и естественным наукам.Моя основная идея заключается в том, что будет два типа пользователей: студент и учитель.Учителя, очевидно, будут иметь больше прав доступа, чем студенты.Проблема в том, что класс User django имеет атрибут is_admin, и, поскольку администратором сайта могут быть только Учителя, я не могу создать отдельный класс User, имеющий атрибуты is_admin и user_type.Например, пользователь с is_admin = True и user_type = Student будет недопустимой комбинацией.Моя идея состоит в том, чтобы сделать мой класс User абстрактным базовым классом, а затем создать два отдельных класса, Student и Teacher, которые наследуются от него.Это также идеально в том смысле, что только Учителя могут публиковать статьи, что означает, что у учеников просто не будет такого разрешения, но тогда я столкнусь с другой проблемой.Все пользователи имеют один профиль.В профиле будет храниться биография, изображение аватара пользователя и т. Д. Но при настройке отношения OneToOneField в профиле у профиля должны быть эти отношения со студентами и учителями, то есть со всеми типами пользователей.Как я могу установить эти отношения?Могу ли я сказать OneToOneField (Пользователь) и из-за наследства этот пользователь может быть Студентом или Учителем?Если нет, что мне делать?
Если у вас есть опыт, и вы думаете, с какой стати он (это я) это делает? Не стесняйтесь комментировать мой план дизайна и, пожалуйста, покажите мне, как это сделать.лучший дизайн будет выглядеть.Заранее спасибо.
РЕДАКТИРОВАТЬ: Есть ли преимущество в том, чтобы иметь одного профиля для каждого пользователя, сохранять биографию, изображение и т. Д.?Есть ли какая-то польза от сохранения этой информации в модели User?