Django与用户的不同客户

时间:2015-02-26 08:24:02

标签: django django-models

对于SaaS应用程序,我希望每个客户端都有一个自定义子网站。每个子网站都有用户,我想使用Django的默认用户模型。

子网站由子域定义,例如client1.example.comclient2.example.com将是在同一个应用程序上运行的两个不同的子网站。

我希望每个子网站都有唯一的用户,例如alice@email.com可以使用相同的用户名(电子邮件)注册多个子网站。

如何更改Django用户模型以包含client_id,然后对unique_togetherclient_id执行username约束?我是否必须为此重写整个身份验证后端?

1 个答案:

答案 0 :(得分:0)

我认为定义您自己的用户模型就足够了。

AbstractBaseUser

派生

https://docs.djangoproject.com/en/1.7/topics/auth/customizing/#specifying-a-custom-user-model

你需要unique_together = ('client_id', 'username',) https://docs.djangoproject.com/en/1.7/ref/models/options/#unique-together

编辑:

在SO中找到解决方案

Django 1.7 multisite User model

他基本上创建了一个字段,它将USERNAME_FIELD的两个字段组合在一起。我不确定是否有更优雅的方式。