【发布时间】:2014-06-17 14:38:35
【问题描述】:
使用 django allauth 进行社交帐户注册时,allauth 会自动将用户名定义为从 3rdparty 获取的 first_name。因此,例如:如果 facebooks John Cucumber 注册,他将获得用户名“john”。我想把它改成“约翰黄瓜”。使用他的名字和姓氏作为用户名。在文档中没有看到任何关于此的内容。
谢谢
编辑:更多解释:
匿名不是默认的 我试图实现默认用户不是匿名的(使用昵称)。他们有能力将用户名更改为昵称,但只有在完全注册后,默认情况下他们使用社交网络的全名。
注册很快(没有表格) 我还想让他们注册并快速登录(这就是为什么我首先使用社交网络登录,单击一下,您就是我页面的用户)。所以,我不想用注册表来打扰用户。正如安德鲁在下面的帖子中指出的那样 当前的 allauth 设置会导致许多名称冲突(可能只有一个 John,所有其他人都需要更改他们的用户名)。与全名相比,与名字的冲突将更少。但这是我稍后会追求的,一旦这个问题解决了。
【问题讨论】:
-
据我在文档中看到的是:
ACCOUNT_USERNAME_REQUIRED其中:The user is required to enter a username when signing up. Note that the user will be asked to do so even if ACCOUNT_AUTHENTICATION_METHOD is set to email. Set to False when you do not wish to prompt the user to enter a username. -
我知道这一点,但我希望用户拥有一个用户名。感谢您的回复。
-
Allauth 有一个 extract_common_fields 方法,也许你可以使用它并覆盖数据库中的保存(可能使用 pre_save 信号),抱歉没有使用 allauth 所以我不熟悉是否有函数覆盖用户创建。
标签: django django-allauth