覆盖Django allauth signup“next”重定向URL

lhcgjxsq  于 2023-05-19  发布在  Go
关注(0)|答案(1)|浏览(99)

假设一个用户使用django-allauth访问/some_url/页面。当点击“登录”时,他们会被发送到一个URL,如:

/accounts/login/?next=/some_url/

如果他们已经是注册用户,在这里登录后,他们会被发送到/some_url/,这很好。
但如果他们没有注册,他们点击“注册”,他们会被发送到:

/accounts/signup/?next=/some_url/

假设我想在用户注册后立即将其发送到/onboarding/的一些入门体验。
什么是覆盖allauth的默认行为的最简单的方法,即使指定了next=/some_url/,也将用户发送到/onboarding/

xmjla07d

xmjla07d1#

最简单的方法是用您自己的副本覆盖模板account/signup.html。如果检查该模板,您将看到以下部分:

{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
{% endif %}

如果您删除if/endif部分并更改其中的值,注册页面将重定向到特定页面,即使您在URL中传递next参数:

<input type="hidden" name="{{ redirect_field_name }}" value="/onboarding/" />

相关问题