els*_*sar 3 django django-allauth
我有一个django项目,其中有多个配置文件模型,每个模型都有一个用户模型的外键.它django-allauth用于注册.
目前,当使用社交帐户注册时,用户注册,创建用户和社会帐户,然后根据他/她之前选择的配置文件类型以及填写该表单后,将用户重定向到要填写的表单.是创建的正确配置文件类型.
如果用户,socialaccount和配置文件类型实例是在同一步骤中创建的,即在用户填写配置文件特定表单之后,我会喜欢它.无论如何我可以在不改变allauth's代码的情况下做到这一点吗?通过修改allauth来做到这一点并不难,但如果可以帮助我,我宁愿不维护第三方应用程序的自定义副本.
使用自定义适配器是因为它无法访问请求.
Thr*_*oze 11
看一下在allauth.account.signals.user_signed_up用户(社交或正常)注册后触发的信号.您可以在那里使用您的帐户执行以下操作:
from django.dispatch import receiver
from allauth.account.signals import user_signed_up
@receiver(user_signed_up)
def do_stuff_after_sign_up(sender, **kwargs):
request = kwargs['request']
user = kwargs['user']
# Do your stuff with the user
user.save()
Run Code Online (Sandbox Code Playgroud)
# Typically followed by `user_logged_in` (unless, e-mail verification kicks in)
user_signed_up = Signal(providing_args=["request", "user"])
Run Code Online (Sandbox Code Playgroud)
要了解如何在django中使用信号,请阅读有关它的官方文档.
我希望它对你有所帮助!
我很高兴你找到了解决问题的方法,但由于中间件总是被加载,我建议使用我提出的方法.该socialaccount模块django-allauth也提供信号.其中,你可以找到allauth.socialaccount.signals.social_account_added:
# Sent after a user connects a social account to a his local account.
social_account_added = Signal(providing_args=["request", "sociallogin"])
Run Code Online (Sandbox Code Playgroud)
使用类似于先前编写的处理程序,您可以检查用户模型以获取所需字段,然后调用重定向快捷方式,或返回重定向到显示/处理表单的视图的HttpResponseRedirect对象.
| 归档时间: |
|
| 查看次数: |
1975 次 |
| 最近记录: |