假设用户在页面 /some_url/
上在带有 django-allauth 的站点上。当点击“登录”时,它们会被发送到一个 URL,如:
/accounts/login/?next=/some_url/
如果他们已经是注册用户,在这里登录后,他们会被发送到
/some_url/
,这很好。但是如果他们没有注册,他们点击“注册”,他们会被发送到:
/accounts/signup/?next=/some_url/
假设我想在
/onboarding/
上让用户体验一些入门体验。 , 直接在他们注册后。覆盖 allauth 的默认行为并将用户发送到
/onboarding/
的最简单方法是什么?即使是 next=/some_url/
是指定的?
最佳答案
最简单的方法是覆盖模板 account/signup.html
与您自己的副本。如果您检查该模板,您将看到以下部分:
{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
{% endif %}
如果删除
if
/endif
部分并更改里面的值,注册页面将重定向到特定页面,即使您传递了 next
URL 中的参数:<input type="hidden" name="{{ redirect_field_name }}" value="/onboarding/" />
关于django - 覆盖 Django allauth 注册 "next"重定向 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29168337/