Django多用户登录 - 最好的方法?

TC *_*Fox 6 django database-relations django-models django-authentication

我目前正在开发一个Django站点,用户可以在其中拥有多个"帐户",这样他们就可以在通过站点进行交互时在不同的公共配置文件之间无缝切换.我正在设计的内容可能会吸引每人多次注册(并且不会气馁),我只想提供这样一种方式,即用户可以将配置文件捆绑在一起,轻松切换并且只需要记录一次.

到目前为止我想到的两种方法包括:

  • 一个(User型号+ SiteProfile型号)对和PublicProfile每个人的许多模型.AUTH_PROFILE_MODULE设置为指向SiteProfile模型.这个问题是我不能轻易使用每个对象的权限:这些权限将设置在User对象而不是公共配置文件上,因此当用户伪装成"公共配置文件"时,查看"PublicProfileA"页面的权限也将被应用. "PublicProfileB".

  • 每人一个Account模型和许多(User模型+ UserProfile模型)对.AUTH_PROFILE_MODULE设置为指向UserProfile模型.这将具有按预期工作的权限的额外好处,并且我可以简单地具有自定义后端,其将通过如果用户当前Account以与外键具有相同对象的另一用户登录来切换用户.通过读取Account对象上的字段会发生身份验证,这意味着password每个User对象上的字段都将被浪费.

  • 如上所述,但是继承AccountUser.我曾被强烈反对这一点(原因尚不清楚).

这有什么陷阱或更好的方法吗?最终,我应该使用内置User模型作为每人一个模型来识别一组面向公众的配置文件(这些配置文件将FK返回到User对象),或者将其用作配置文件本身,链接回来Account为每个人一个对象?

Fra*_*les 0

是的,我认为最好的方法是每人拥有一个且只有一个用户,以及他们可以在之间“切换”的多个 PublicProfile 对象。这为他们提供了只有一个用户名/密码的好处,并且似乎对 Django 的身份验证通常如何工作最有意义。