【问题标题】:Setting up http error custom pages in django在 django 中设置 http 错误自定义页面
【发布时间】:2023-03-21 19:53:01
【问题描述】:

我想向我的网站添加自定义错误页面,但我得到了简单的页面,例如 403 错误我没有得到我构建的模板。模板位于templates/http_errors/ 文件夹中。

settings 文件中的模板设置如下所示:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [normpath(join(PROJECT_DIR, 'templates'))],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'django.template.context_processors.media',
                'django.template.context_processors.i18n'
            ],
        },
    },
]

urls.py:

from django.conf.urls import handler403
handler403 = 'core.views.custom_handler403'

views.py:

def custom_handler403(request):
    response = render_to_response('http_errors/HTTP403.html', {},
                                  context_instance=RequestContext(request))
    response.status_code = 403
    return response

我尝试了很多在 django docs 和 stackoverflow 上找到的选项,但仍然找不到答案。如果你能帮助我,那就太好了。

附:我正在使用 Django 1.10 和 Python 3.5

【问题讨论】:

  • 您是否收到任何错误信息?
  • 我没有收到任何错误,引发了 HTTP403,但它没有加载我创建的自定义页面
  • 我实际上使用该主题来创建视图

标签: django-views django-urls http-error


【解决方案1】:

只有在您的设置中设置了 DEBUG = False 时,这些自定义页面才会起作用。否则将使用正常的调试处理程序

【讨论】:

    猜你喜欢
    • 2011-03-26
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2013-10-06
    • 2011-06-05
    • 2013-06-08
    • 2020-05-21
    • 2015-04-04
    相关资源
    最近更新 更多