我在网页的各处添加了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/

10-16 19:07