gpt4 book ai didi

Django Allauth 如何更改用户名=名字?

转载 作者:行者123 更新时间:2023-12-01 15:32:47 34 4
gpt4 key购买 nike

当使用 django allauth 进行社交帐户注册时,allauth 自动将用户名定义为从 3rdparty 获取的 first_name。因此,例如:如果 facebooks John Cucumber 注册,他将获得用户名“john”。我想将其更改为“john cucumber”。使用他的名字和姓氏作为用户名。在文档中没有看到任何关于此的信息。

谢谢

编辑:更多解释:

  1. 匿名不是默认值我正在努力实现默认情况下用户不是匿名的(使用昵称)。他们可以将用户名更改为昵称,但只有在完全注册后,默认情况下他们才使用来自社交网络的全名。

  2. 注册很快(无需表格)我还想让他们注册并快速登录(这就是为什么我首先使用社交网络登录,单击一下,你就是我页面的用户)。所以,我不想用注册表来打扰用户。正如安德鲁在下面的帖子中指出的那样allauth 的当前设置会导致许多名称冲突(可能只有一个 John,所有其他人都需要更改他们的用户名)。与名字相比,全名的冲突更少。但这是我稍后要做的事情,一旦这个问题得到解决。

最佳答案

我认为很快您的用户就会开始看到与生成的用户名发生冲突。一旦您拥有多个“John Smith”,就会遇到问题。

此外,许多用户可能不希望将全名作为用户名。

就个人而言,我总是使用电子邮件登录,从不使用用户名,但如果您坚持使用它,我建议您显示一个允许选择用户名并将默认设置为 "%s 的表单%s"% (first_name, last_name) 或类似的。

为确保显示表单,编辑设置:

SOCIALACCOUNT_AUTO_SIGNUP = False  # require social accounts to use the signup form

来自documentation :

[If true] Attempt to bypass the signup form by using fields (e.g. username, email) retrieved from the social account provider. If a conflict arises due to a duplicate e-mail address the signup form will still kick in.

您应该能够在呈现表单之前使用 Hook 来提供建议的用户名。

django-allauth 与 Twitter Bootstrap 的工作示例*位于 https://github.com/aellerton/demo-allauth-bootstrap。 .但是,它使用用户名,但它会在社交注册后显示注册表单。

*免责声明:我写了这个例子。

关于Django Allauth 如何更改用户名=名字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24266657/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com