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

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

我目前正在开发一个 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/

    相关文章:

    python - django View 流测试

    python - Django、django oscar 和 digital ocean

    Django 1.6 和嵌套 "with transaction.atomic()"

    django - 自定义 django-user 对象没有属性 'has_module_perms'

    python - 尝试使用外键从不同类中按字段进行选择,出现错误

    django - 在django模板中按索引访问列表

    python - 为什么我无法验证通过自定义管理.py 命令创建的 Django 用户?

    Django - 自定义身份验证后端中的错误消息

    Django:抽象类中的自定义模型管理器查询

    django - django中的无符号整数字段