假设用户位于使用django-allauth的网站上的/some_url/
页面上。点击“登录”后,他们会收到以下网址:
/accounts/login/?next=/some_url/
如果他们已经是注册用户,那么在登录后,他们会被发送到/some_url/
,这很好。
但如果他们没有注册,他们点击“注册”,他们会被发送到:
/accounts/signup/?next=/some_url/
假设我想在用户注册后立即向/onboarding/
用户发送一些入职体验。
覆盖allauth默认行为的最简单方法是什么,即使指定了/onboarding/
,也会将用户发送到next=/some_url/
?
答案 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/" />