如何让用户在Django social auth注册期间设置用户名?
我使用Django social auth(omab版本只是为了避免与其他同名项目混淆),现在我正在Facebook上尝试。可以注册新用户并在没有任何问题的情况下登录/注销。我唯一想添加的是注册期间的一个表单,允许用户输入想要在站点上使用的用户名,因为目前用户名要么是facebook用户名(我不想强制用户使用相同的用户名),要么是uuid(如果没有facebook用户名)(这很难看)如何让用户在Django social auth注册期间设置用户名?,django,django-socialauth,Django,Django Socialauth,我使用Django social auth(omab版本只是为了避免与其他同名项目混淆),现在我正在Facebook上尝试。可以注册新用户并在没有任何问题的情况下登录/注销。我唯一想添加的是注册期间的一个表单,允许用户输入想要在站点上使用的用户名,因为目前用户名要么是facebook用户名(我不想强制用户使用相同的用户名),要么是uuid(如果没有facebook用户名)(这很难看) 我正在阅读文档、管道和所有这些东西,但我不确定是否理解,欢迎提供任何提示或解释。我在social auth附带的
我正在阅读文档、管道和所有这些东西,但我不确定是否理解,欢迎提供任何提示或解释。我在social auth附带的示例应用程序中找到了它。这里有一个要使用的管道示例,甚至还有需要实现的表单和视图。只有很少甚至没有必要进行任何更改才能使实现正常工作。在我写这篇文章时,至少需要在表单上做一些工作,因为你可以输入一个已经使用的用户名。接受的答案链接到整个GitHub项目,但没有解释其中哪些部分是相关的,有些部分是过时的,所以我将尝试分享我学到的 django social auth已被弃用,替代品为,它将django与项目集成在一起 关于python social auth的文档是相关的。在默认管道中,这是生成用户名的阶段:
# Make up a username for this person, appends a random string at the end if
# there's any collision.
'social_core.pipeline.user.get_username',
显示默认行为。我们必须复制这些方面:
- 它通过检查
并修改用户名直到其唯一,从而确保它提供的用户名是唯一的storage.user.user\u exists(username=…)
- 它返回字典
,并将其传递到管道中的下一个阶段{'username':'…'}