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