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

时间:2012-05-08 11:23:40

标签: django django-models django-authentication database-relations

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

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

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

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

  • 如上所述,但是从Account继承User。我被强烈反对这一点(原因不明)。

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

1 个答案:

答案 0 :(得分:0)

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