django-allauth:如何在登录后重定向到上一页

问题描述 投票:0回答:1

我正在使用 django-allauth。我可以通过在 settings.py 中添加以下内容成功地将其重定向到主页:

LOGIN_REDIRECT_URL = '/home'

但是我可以将其重定向到上一页吗?

django django-urls django-allauth django-settings
1个回答
1
投票

您要查找的内容实际上应该通过使用 redirect 字段(默认情况下为

next
)开箱即用: https://docs.djangoproject.com/en/3.1/topics/auth/default/#django.contrib.auth.mixins.AccessMixin.get_redirect_field_name

检查访问权限并重定向到登录表单的视图只需要传递用户之前所在的 URL。如果该字段存在,用户在登录后将被重定向到该特定页面。

如何限制登录?我猜你没有通过

next
@login_required
装饰器和基于类的视图的
LoginRequiredMixin
都默认设置
next

这是文档中关于 LoginView 如何处理 POST 请求的内容:

如果使用用户提交的凭据通过 POST 调用,它会尝试让用户登录。如果登录成功,视图将重定向到

next
中指定的 URL。如果未提供
next
,则会重定向到
settings.LOGIN_REDIRECT_URL
(默认为
/accounts/profile/
)。

© www.soinside.com 2019 - 2024. All rights reserved.