Django-Allauth 连接Facebook但强制更改用户名

0 投票
1 回答
773 浏览
提问于 2025-04-18 01:53

我正在使用Django-Allauth在我的网站上成功用Facebook账号登录。问题是,当我使用默认的注册视图时,存储在数据库里的用户名是Facebook社交登录返回的用户名,类似这样:

<firstname>.<lastname>.<integer>

我已经找到了如何在之后将我的Facebook账号与一个已经创建的普通用户账号(不是社交账号)连接的方法,使用的视图在这里:

/accounts/social/connections/

还有如何更改邮箱的方法:

/accounts/email/

有人能告诉我怎么做才能让用户在用Facebook登录我的网站时选择一个非Facebook的用户名,而不需要先创建一个普通用户吗?

谢谢!

============ 编辑 =======================

我在settings.py中添加了这个设置后,会提示输入用户名和密码来关联Facebook登录,但并没有提示输入密码:

SOCIALACCOUNT_AUTO_SIGNUP = False

我还需要弄清楚在这种情况下如何提示输入密码。

1 个回答

0

这个解决办法是:让社交账号注册表单继承自SignupForm。

class SignupForm(SignupForm):

撰写回答