2

我有一个 django 项目,其中有一个 UserProfile 具有 OneToOne 到 User 模型。它使用 django-allauth 进行注册。

我正在接受通过帐户和社交帐户注册。注册后,我希望将用户重定向到一个页面,以便为该用户帐户创建 UserProfile。

我怎么能那样做?

我读过,有 1 个名为 user_signed_up 的信号,它可以用来将用户重定向到某个页面吗?我在下面尝试了这段代码,但它没有将我重定向到我想要的页面。

@receiver(user_signed_up, dispatch_uid="some.unique.string.id.for.allauth.user_signed_up")
def do_stuff_after_sign_up(sender, **kwargs):
    request = kwargs['request']
    user = kwargs['user']
    return redirect ('/test/')

任何帮助将不胜感激。谢谢 :)

4

1 回答 1

0

我知道它已经晚了,但我希望未来的读者会发现它有帮助。:)

你需要提出 ImmediateHttpResponse这样的:

from allauth.exceptions import ImmediateHttpResponse
from django.shortcuts import render

@receiver(user_signed_up, dispatch_uid="some.unique.string.id.for.allauth.user_signed_up") 
def do_stuff_after_sign_up(sender, **kwargs): 
    request = kwargs['request'] 
    user = kwargs['user'] 
    raise ImmediateHttpResponse(render(request, 'you_custom_profile.html', {'user': user}))
于 2019-02-05T03:13:12.657 回答