如何重定向尝试访问 Django 管理区域的用户?
我注意到 Django 管理区域有一个有趣的问题。如果我撤销我的员工权限并尝试直接访问 /admin
,我通常会期望重定向到我的登录页面,并在查询字符串中包含 /admin/
作为未来的重定向。但是,我得到了一个带有 HTTP 代码 200 的正确页面,该页面实际上使用我的 admin/login.html
模板来呈现所请求的页面而不是重定向。问题似乎出在 @staff_member_required
装饰器中,管理视图显然使用了该装饰器。
问题是:这是故意的吗?如果不是,我怎样才能改变这种行为而不需要太多的猴子补丁?
I've noticed an interesting problem with Django's admin area. If I revoke my staff permissions and try to access /admin
directly, I would normally expect a redirect to my login page with /admin/
in the query string as a future redirect. However, I get a proper page returned with HTTP code 200 which actually uses my admin/login.html
template to render that requested page instead of redirecting. It seems the problem lies within the @staff_member_required
decorator, which admin views obviously use.
The question is: is this done on purpose? If not, how can I change this behaviour without too much monkey-patching?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是故意这样做的,因为许多人在他们的网站中实施重定向,这可能会阻止对管理面板的访问。因为管理面板是它自己的应用程序,所以它会重定向到自身。
This is done on purpose, because many people implement redirects in thier sites which could block access to the admin panel. Because the admin panel is it's own app it redirects to itself.