У меня есть приложение Django, которое позволяет пользователям разных типов: фирмам, администраторам, внешним сотрудникам и т. Д. Конечно, все это легко управлять с помощью стандартной системы аутентификации и групп.
Моя проблема в том, чтопользователи, принадлежащие к разным группам, будут иметь различную связанную информацию - например, фирмы должны будут предоставить некоторую коммерческую информацию, которая не имеет смысла для частных пользователей.Поэтому мне нужно прикрепить разные профили в зависимости от группы.(В моем приложении группы являются взаимоисключающими.)
К сожалению, Django разрешает присоединять только одну модель в качестве профиля, и эта модель объявлена в settings.AUTH_PROFILE_MODULE
.Внутренне это извлекается методом User.get_profile()
, который в основном просто читает это значение и выполняет некоторые проверки, например, что модель действительно существует.
Я думал о создании подкласса User
и переопределении get_profile()
метод, так что он возвращает другую модель в зависимости от группы.
Существует ли более простой / понятный способ управления различными типами профилей?
Кто япредложение кажется немного взломанным, учитывая, что пользовательские профили были введены именно для того, чтобы не создавать подкласс User.