В настоящее время я разрабатываю сайт Django, на котором пользователи могут иметь несколько «учетных записей», чтобы они могли беспрепятственно переключаться между различными общедоступными профилями при взаимодействии с сайтом. То, что я разрабатываю, вероятно, привлечет несколько регистраций на человека (и не будет обескуражен ). Я просто хотел бы предложить это таким образом, чтобы пользователи могли связывать профили вместе, легко переключаться и нужно войти только один раз.
Два подхода, которые я придумал до сих пор, включают:
Одна(User
модель + пара SiteProfile
модель )и множество PublicProfile
моделей на человека. AUTH_PROFILE_MODULE
настроен на модель SiteProfile
. Проблема с этим заключается в том, что я не могу легко использовать разрешения для -объекта :, они будут установлены для объекта User
, а не для общедоступного профиля, поэтому также будут применяться разрешения на просмотр страницы для «PublicProfileA». когда пользователь маскируется под «PublicProfileB».
Одна модель Account
и несколько пар моделей(User
+ модель UserProfile
)на человека. AUTH_PROFILE_MODULE
указывает на модель UserProfile
. Это дало бы дополнительное преимущество в том, что разрешения работают, как предполагалось, и что я могу просто иметь Custom Backend, который будет переключать пользователей, аутентифицируя пользователя, если они в настоящее время вошли в систему как другой пользователь, который имеет тот же объект Account
, что и Иностранный ключ. Аутентификация будет происходить путем чтения полей в объекте Account
, что будет означать, что поле password
в каждом объекте User
будет потрачено впустую.
То же, что и выше, но с подклассом Account
из User
. Однако мне настоятельно рекомендовали не делать этого (по неясным )причинам.
Есть ли подводные камни или лучшие подходы к этому? В конечном счете, должен ли я использовать построенную -в User
модель как одну -на -модель человека, которая идентифицирует группу общедоступных профилей (, из которых эти профили имеют FK назад к User
объект )или использовать его как сам профиль, ссылаясь на один объект Account
для каждого человека?