我在网页的各处添加了django.contrib.auth.views.login ,因为我不得不在base.html中加载templatetag(返回AuthenticationForm)。此templatetags包括registration/login.html
模板。
登录工作正常,但是我希望它将用户重定向到登录前的同一页面。现在,它将我重定向到/wherever_i_am/login,其中显示的registration/login.html
带有“login ok”(登录成功)或“login failed”(登录失败)消息,但没有base.html的其余部分。
我遵循了django文档和一些诸如this这样的问题,但我无法正确重定向。我已经修改了next
变量,但是它似乎不起作用(next={{ request.get_full_path }}
将我重新定向到/wherever_i_am/login ...
您是否尝试过类似的方法?有任何想法吗?
UPDATE1
现在,问题可能是这样的:如果我想在网页的任何地方都包含登录表单,是否必须声明自己的登录 View ?
谢谢你。
最佳答案
找到答案:
在settings.py中更改settings.LOGIN_REDIRECT_URL,
下面的代码是从Django复制的:
if request.method == "POST":
form = authentication_form(data=request.POST)
if form.is_valid():
# Ensure the user-originating redirection url is safe.
if not is_safe_url(url=redirect_to, host=request.get_host()):
redirect_to = settings.LOGIN_REDIRECT_URL
...
关于python - 登录后如何重定向django.contrib.auth.views.login?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6606827/