覆盖 Django allauth 注册 "next" 重定向 URL

Override Django allauth signup "next" redirect URL

假设用户在使用 django-allauth 的站点的 /some_url/ 页面上。单击 "Login" 时,他们会被发送到 URL,例如:

/accounts/login/?next=/some_url/

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

但如果他们没有注册,点击 "sign up",他们将被发送到:

/accounts/signup/?next=/some_url/

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

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

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

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

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

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