我在网页中的每个地方都添加了django.contrib.auth.views.login,因此必须在base.html中加载templatetag(返回AuthenticationForm)。此templatetags包括registration/login.html
模板。
登录工作正常,但我希望它将用户重定向到登录前的相同页面。现在,它将我重定向到/where_i_am/login wich显示的registration/login.html
,其中显示“login ok”或“login fails”消息,但没有base.html的其余部分。
我已经遵循了django文档和一些类似this的问题,但是我无法正确重定向。我已经修改了next
变量,但它似乎不起作用(next={{ request.get_full_path }}
再次将我重定向到/在哪里/登录…)
你试过类似的东西吗?有什么想法吗?
更新1 现在,问题可能是这样的:如果我想在网页的任何地方都包含登录表单,我必须声明自己的登录视图吗?
谢谢你。
下面允许用户重定向到登录后试图访问的页面,但不必编写自定义视图。它包含了你需要添加的所有代码。(顺便说一下,并不是所有的模板上下文处理器都是必需的,但是如果您显式地为其设置了一个值,则会覆盖默认值,因此需要重新添加它们。)
设置.py
url.py
登录.html
注销.html
视图.py
我在默认登录视图中使用了类似的内容:
一切正常。
备注:您确定“context_processors.request”包含在设置中吗?忘记包含它是一个常见的问题。
UPD:据我所知,在登录失败时,无法将默认登录视图设置为重定向(这根本不起作用)。
但我可能错了
找到答案:
在settings.py中更改settings.LOGIN_REDIRECT_URL
以下代码来自django:
相关问题 更多 >
编程相关推荐