Django自定义用户模型,具有独特的togethr - 租户和用户名

问题描述:

我正在Django上创建一个多租户应用程序,我希望用户模型在“租户”(外包租户模型,具有租户详细信息)和“用户名”,即类似 - unique_together =(“用户名”,“租户”)或其任何品种。有没有可能做到这一点?Django自定义用户模型,具有独特的togethr - 租户和用户名

+0

是的,这是可能的。您可能还想让电子邮件也是唯一的(如果您要添加电子邮件)。 –

+0

Thanxxx弗朗索瓦!我正在尝试这个,但没有工作。可以说用户名A,租户A已经注册。我正在尝试另一个用户名A,租户B尝试注册... django不接受。我的用户模型是从AbstractUser派生的,在这里我把这个约束放在一起。然后,我会用电子邮件做同样的事情。 – SG2791

+0

用户名最有可能有一个唯一的约束,所以你不能添加用户名两次。一种解决方法是将关系设置为多对多,并在通过表 – karthikr

的Django用户模型需要“用户名”是唯一的,所以我会建议使用另一个字段来代替用户名,如“电子邮件”,我相信你想保持唯一

为了做到这一点,你需要覆盖用户模型并更改用户名字段

USERNAME_FIELD ='email'

+0

是否没有黑客,我可以用这个黑名单来覆盖这个用户名限制?我遇到的另一个选择是自动生成用户名。假设租户名称是A,用户名将自动生成为A1,A2 ...等。但这是我需要的最后一个首选选项。 – SG2791

+0

对不起,您需要创建继承AbstractBaseUser,PermissionsMixin – segalle

+0

的自定义用户模型使用此:https://docs.djangoproject.com/en/1.10/topics/auth/customizing/#custom-users-and-proxy -models – segalle