我正在使用 django-allauth。我可以通过在 settings.py 中添加以下内容成功地将其重定向到主页:
LOGIN_REDIRECT_URL = '/home'
但是我可以将其重定向到上一页吗?
您要查找的内容实际上应该通过使用 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 调用,它会尝试让用户登录。如果登录成功,视图将重定向到
中指定的 URL。如果未提供next
,则会重定向到next
(默认为settings.LOGIN_REDIRECT_URL
)。/accounts/profile/