覆盖 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/" />
假设用户在使用 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/" />