覆盖Django allauth注册“下一步”重定向URL

时间:2015-03-20 14:01:41

标签: django django-allauth

假设用户位于使用django-allauth的网站上的/some_url/页面上。点击“登录”后,他们会收到以下网址:

/accounts/login/?next=/some_url/

如果他们已经是注册用户,那么在登录后,他们会被发送到/some_url/,这很好。

但如果他们没有注册,他们点击“注册”,他们会被发送到:

/accounts/signup/?next=/some_url/

假设我想在用户注册后立即向/onboarding/用户发送一些入职体验。

覆盖allauth默认行为的最简单方法是什么,即使指定了/onboarding/,也会将用户发送到next=/some_url/

1 个答案:

答案 0 :(得分:15)

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

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

如果删除if / endif部分并更改内部值,即使您在网址中传递next参数,注册页面也会重定向到特定网页:

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