1
8
我不确定这是否正是你要找的,但我认为你可以使用类似于 this answer . 以下代码可以工作,只要它在Django加载模型时执行的位置。
请注意,这不会更改
|
2
6
您可以做的是扩展用户模型。对于用户表,生成一个在站点中根本不会显示的用户名(例如,a_123、a_345)。 然后创建一个扩展用户的新模型。
然后创建一个使用appuser而不是user对象的自定义身份验证后端。 |
3
1
我个人并不需要找到解决方案,但解决这个问题的一种方法(从SaaS的角度)是在用户名前面加上组织标识符(假定为唯一的组织)。例如:subdomain.yoursite.com将等同于用户名为:subdomain_username的用户。您只需在登录到子域时编写一些业务逻辑代码,就可以将其附加到用户名上。 |
4
0
我正面临着同样的问题,我读了很多书(关于如何在1.5中解决这个问题),我只是想到了一个更简单的解决方案。如果您只是添加一个带有组织ID的固定长度前缀来存储用户名呢? 即,组织ID=115,选择用户名=“john”,固定长度为6。因此,在数据库中,您存储为用户名“000115_john”。 当您登录时,只需加入两个参数,并尝试使用Django提供的内容进行身份验证。我不确定固定长度是否是严格必要的,但是如果用户选择只有数字的用户名,就可以避免不必要的结果。 |
5
0
我也遇到了这个问题。我正在做一个项目,我必须使用电子邮件和手机号码作为登录字段,但它们都不应该是唯一的,因为它们是不同类型的用户,一个用户可以有多个用户实体,而且该项目只需要一个auth用户表(hectic right!). 所以我扩展了abstractbaseuser类,在这里我可以更改username_field属性。以下是如何:
是的,没错,很惊讶?用户名字段应该是唯一的字段,这是该属性的约束。我不能使用电子邮件或手机号码作为唯一字段。 然后我创建了一个自定义管理器来删除用户名字段(参考= https://simpleisbetterthancomplex.com/tutorial/2016/07/22/how-to-extend-django-user-model.html#abstractbaseuser )
这就行了。 |
Florent · 如何在Django中聚合多个字段? 1 年前 |
KWunsch · Django没有将pk引入模板 1 年前 |
Akshay mek · Vscode扩展建议不适用于某些文件夹 1 年前 |
Farid · 限制django每个客户的访问 2 年前 |
Blue · 从Django中的输入字段获取用户输入 2 年前 |
4SadMemeXD · 无法在Django中选择相关类别 2 年前 |