我目前正在开发一个 Django 站点,其中用户可以拥有多个“帐户”,以便他们在通过该站点进行交互时可以在不同的公共(public)配置文件之间无缝切换。我正在设计的内容可能会吸引每人多次注册(并且不会气馁),我只是想以这样一种方式提供此功能,即用户可以将个人资料捆绑在一起,轻松切换并且只需要登录一次。
到目前为止,我想到的两种方法包括:
User
型号 + SiteProfile
型号)一对和许多 PublicProfile
每人模型。 AUTH_PROFILE_MODULE
设置为指向 SiteProfile
模型。问题是我不能轻易使用每个对象的权限:这些将在 User
上设置。对象而不是公共(public)配置文件,因此当用户伪装成“PublicProfileB”时,也将应用查看“PublicProfileA”页面的权限。 Account
模型和许多(User
模型 + UserProfile
模型)对每人。 AUTH_PROFILE_MODULE
设置为指向 UserProfile
模型。这将具有按预期工作的权限的额外好处,并且我可以简单地拥有一个自定义后端,如果他们当前作为具有相同 Account
的另一个用户登录,它将通过对用户进行身份验证来切换用户。对象作为外键。通过读取 Account
上的字段来进行身份验证。对象,这意味着 password
每个 User
上的字段对象将被浪费。 Account
来自 User
.我被强烈建议不要这样做(原因不明)。 有什么陷阱或更好的方法吗?最终,我应该使用内置的
User
模型作为识别一组面向公众的个人资料(其中这些个人资料具有指向 User
对象的 FK)的单人模型,或将其用作个人资料本身,链接回单个 Account
每个人的对象?
最佳答案
是的,我认为最好的方法是每个人只有一个 User 和几个可以在它们之间“切换”的 PublicProfile 对象。这给他们带来了只有一个用户名/密码的好处,并且似乎对 Django 的身份验证通常如何工作最有意义。
关于Django多用户登录 - 最好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10497645/