Django 中自定义 404 页面渲染的问题

问题描述 投票:0回答:1

我在 Django 中的自定义 404 页面呈现功能遇到问题。尽管设置了必要的组件,但当找不到页面时,自定义 404 页面不会显示。以下是我的设置概述:

404 模板 (

error404.html
):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Page Not Found</title>
</head>
<body>
    <h1>404 - Page Not Found</h1>
    <p>The page you are looking for does not exist.</p>
    <p>Tommy the train!</p>
</body>
</html>

404 模板渲染视图 (

custom_404_view
):

from django.shortcuts import render

def custom_404_view(request, exception):
    return render(request, 'home1/error404.html', status=404)

URL配置(

urls.py
):

handler404 = 'home1.views.custom_404_view'

设置:

ALLOWED_HOSTS = ['localhost', '127.0.0.1', '::1']
DEBUG = True

尽管按照上述配置了所有内容,但在找不到页面时,自定义 404 页面不会出现。我已确保在我的设置中将

DEBUG
设置为
True
。任何人都可以找出可能导致问题的原因或建议任何其他故障排除步骤吗?

我尝试按照我的问题中概述的步骤在 Django 中实现自定义 404 页面渲染功能。以下是我尝试过的内容以及我期望发生的情况的摘要:

  1. 实现的 404 模板:我创建了一个名为

    error404.html
    的自定义 HTML 模板,其中包含 404 错误页面所需的标记。

  2. 定义自定义 404 视图:我在 Django 应用程序 (

    custom_404_view
    ) 中定义了一个名为
    home1.views
    的视图函数,以在找不到页面时呈现自定义 404 模板。

  3. 配置的 URL 处理程序:我在

    handler404
    文件中配置了
    urls.py
    变量以指向自定义 404 视图。

  4. 检查设置:我验证了 Django 项目设置文件中的

    DEBUG
    设置已设置为
    True
    ,并确保我的
    ALLOWED_HOSTS
    包含必要的值。

期望:我期望当找不到页面时(例如,访问不存在的 URL),Django 将呈现我的自定义 404 页面 (

error404.html
),而不是默认的 404 页面。

实际结果:尽管按照上述步骤并确保所有配置正确,但当找不到页面时,自定义 404 页面不会显示。相反,显示默认的 Django 404 页面。

django django-views django-urls django-settings custom-error-pages
1个回答
0
投票

当您使用 DEBUG = True 时,您的自定义视图将永远不会被使用,如文档中所述

如果 DEBUG 设置为 True(在您的设置模块中),那么您的 404 视图 永远不会被使用,并且你的 URLconf 将被显示, 一些调试信息。

您需要将 DEBUG 更改为 False 才能看到您的自定义页面。

© www.soinside.com 2019 - 2024. All rights reserved.