我正在尝试在 Django 1.5 中使用我的 403, 404, 500 自定义模板。
404 和 500 工作完美,但 403 仍然向我展示内置的 Django 403 模板。
我将所有三个模板都放在项目的根模板目录中。
它们被命名为:403.html、404.html、500.html
我也尝试使用:
urls.py:
from django.utils.functional import curry
handler403 = curry(permission_denied, template_name='403.html')
并且:
网址.py:
handler403 = 'proj_name.views.my_custom_permission_denied_view'
项目名称/views.py
def my_custom_permission_denied_view(request):
return ethoos_response('403.html', None, request)
这两种方法都不起作用。同样在 404 和 500 中,我没有使用这些方法,只使用模板目录中的模板,并且显示它们。
根据 Django 的文档,这三个工具应该以相同的方式工作。https://docs.djangoproject.com/en/1.5/topics/http/views/#the-403-http-forbidden-view https://docs.djangoproject.com/en/1.5/topics/http/views/#the-403-http-forbidden-view
我不知道为什么只有 403 不这样做。
谢谢。
对于常规 403 权限被拒绝页面,创建403.html
模板应该可以工作。
但是,对于 CSRF 错误(也返回状态代码 403),您应该创建一个403_csrf.html
模板代替。
创建一个403_csrf.html
模板适用于 Django 1.10+。对于早期版本,您必须更改CSRF_FAILURE_VIEW https://docs.djangoproject.com/en/stable/ref/settings/#csrf-failure-view设置为您要使用的视图。
See the CSRF 文档 https://docs.djangoproject.com/en/stable/ref/csrf/#rejected-requests了解更多信息。
有讨论 https://groups.google.com/d/msg/django-developers/O2raF0RVGA0/44-3Jz0jCwAJ关于为什么 CSRF 失败视图在本周 Django 开发者邮件列表中表现不同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)