6

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

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

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

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

  • 如上所述,Account但从User. 我被强烈建议不要这样做(原因不明)。

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

4

1 回答 1

0

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

于 2012-05-08T18:54:56.923 回答