Django - 自定义 403 模板
Django - custom 403 template
我正在尝试在 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')
还有:
urls.py:
handler403 = 'proj_name.views.my_custom_permission_denied_view'
proj_name/views.py
def my_custom_permission_denied_view(request):
return ethoos_response('403.html', None, request)
两种方法都不行。同样在 404 和 500 中,我使用了这些方法中的 none,只是模板目录中的模板,并且显示了它们。
根据 Django 的文档,所有这三个都假定以相同的方式工作。
https://docs.djangoproject.com/en/1.5/topics/http/views/#the-403-http-forbidden-view
我不知道为什么只有 403 没有。
谢谢
对于常规的 403 权限被拒绝页面,创建 403.html
模板应该可行。
但是,对于 CSRF 错误(也是 return 状态代码 403),您应该创建一个 403_csrf.html
模板。
创建 403_csrf.html
模板适用于 Django 1.10+。对于早期版本,您必须将 CSRF_FAILURE_VIEW
设置更改为您要使用的视图。
有关详细信息,请参阅 CSRF docs。
本周 Django 开发人员邮件列表中有 a discussion 关于为什么 CSRF 故障视图表现不同的问题。
您需要使用 403_csrf.html
.
我正在尝试在 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')
还有: urls.py:
handler403 = 'proj_name.views.my_custom_permission_denied_view'
proj_name/views.py
def my_custom_permission_denied_view(request):
return ethoos_response('403.html', None, request)
两种方法都不行。同样在 404 和 500 中,我使用了这些方法中的 none,只是模板目录中的模板,并且显示了它们。
根据 Django 的文档,所有这三个都假定以相同的方式工作。 https://docs.djangoproject.com/en/1.5/topics/http/views/#the-403-http-forbidden-view
我不知道为什么只有 403 没有。 谢谢
对于常规的 403 权限被拒绝页面,创建 403.html
模板应该可行。
但是,对于 CSRF 错误(也是 return 状态代码 403),您应该创建一个 403_csrf.html
模板。
创建 403_csrf.html
模板适用于 Django 1.10+。对于早期版本,您必须将 CSRF_FAILURE_VIEW
设置更改为您要使用的视图。
有关详细信息,请参阅 CSRF docs。
本周 Django 开发人员邮件列表中有 a discussion 关于为什么 CSRF 故障视图表现不同的问题。
您需要使用 403_csrf.html
.