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

标签 django django-allauth

假设用户在页面 /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/

相关文章:

python - 用户在 Allauth 上更改电子邮件后的电子邮件确认

django - Django Unittest遇到错误

python - 安装 django-autocomplete-light 示例

django - 覆盖 django-allauth 中的模板

python - 将 django-allauth 与 tastypie 一起使用的正确方法是什么?

django - 导入错误 : No module named 'django.contrib.sitesallauth' in django-allauth

python - 在 python 中通过 django-crispy-forms 渲染表单

python - 如何使用 models.py 、 serializers.py 和 views.py 将解析的 json 数组值保存到 django python Rest api 中的数据库

python - Django目录上传获取子目录名

django - 覆盖 Django 中外部应用程序的模板