如何在django-allauth的社交帐户注册流程中显示自定义表单

时间:2019-09-24 00:50:45

标签: python django facebook django-allauth

我正在努力实现所有这些目标:

A。。新用户可以使用或不使用Facebook进行注册。

B。。在注册流程中,他们都将获得一个表格,以填写其他用户信息。

C 。默认情况下,新帐户将处于非活动状态。管理员手动激活(或删除)帐户时,将需要其他用户信息。


我使用 django-allauth 社交帐户获得了 A

我通过向django.db.models.signals.pre_save添加一个侦听器并设置user.active = False

来达到 C

通过在settings.py中定义自定义ACCOUNT_SIGNUP_FORM_CLASS,部分实现了 B 。但是据我所知,这仅适用于本地“非社交”帐户,因为社交登录似乎跳过了此表单。

我的问题是,当某人使用allauth社交帐户注册时,他们没有机会提供其他信息,因为将在不先显示我的自定义注册表格的情况下创建他们的帐户。 / p>

此外,由于所有新帐户都会自动保存为非活动状态,并且需要其他信息才能使管理员激活它们,所以我不能简单地将该表单添加到“首次登录流程”中(请注意:无法登录进入无效帐户)。

我想解决此问题的一种方法是不自动将帐户保存为非活动状态,而是使用权限,但是如果可以避免的话,我宁愿不重写所有视图。

任何输入将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:1)

将此选项添加到您的settings.py文件中:

SOCIALACCOUNT_AUTO_SIGNUP = False