Django 1.7 - 更新 base_site.html 不起作用

django

1个回答

写回答

wzx989498

2025-07-03 02:20

+ 关注

Django
Django

Django 1.7 - 更新 base_site.html 不起作用

自从Django 1.7版本发布以来,许多开发人员都遇到了一个问题,即无法通过修改base_site.html文件来自定义Django管理界面的外观。在此文章中,我们将探讨这个问题,并提供解决方案。

首先,让我们来看一下为什么在Django 1.7中更新base_site.html文件不起作用的原因。在这个版本中,Django引入了一个新的模板引擎 - Django模板。以前的版本使用的是Django自带的模板引擎,而Django 1.7默认使用新的模板引擎。这意味着我们需要采取一些额外的步骤来使我们的更改生效。

为了解决这个问题,我们需要创建一个新的模板目录,并将我们的自定义模板放在这个目录下。首先,我们需要在我们的Django项目的根目录下创建一个名为"templates"的文件夹。然后,在这个文件夹中创建一个名为"admin"的子文件夹,以模拟Django的默认模板结构。

接下来,我们将base_site.html文件从Django的源代码中复制到我们刚刚创建的admin文件夹中。现在,我们可以在base_site.html文件中进行任何自定义更改,而不会影响到Django的默认模板。

然而,这还不够。我们还需要告诉Django使用我们的自定义模板。为了做到这一点,我们需要在我们的settings.py文件中进行一些配置。在TEMPLATES设置中,我们需要添加一个新的DIRS项,并指向我们刚刚创建的templates文件夹。这将告诉Django在查找模板时也搜索这个新的目录。

以下是一个示例的settings.py文件,展示了如何配置DIRS项:

Python

TEMPLATES = [

{

'BACKEND': 'Django.template.backends.Django.DjangoTemplates',

'DIRS': [os.path.join(BASE_DIR, 'templates')],

'APP_DIRS': True,

'OPTIONS': {

...

},

},

]

现在,我们的自定义模板已经准备就绪,并且Django已经知道在哪里找到它们。我们可以在base_site.html文件中添加任何自定义的HTML、CSSJavaScript代码,以实现我们想要的外观和功能。

在这个过程中,我们可能需要重启Django开发服务器,以使更改生效。只需停止服务器,并再次运行"Python manage.py runserver"命令即可。

在这里,我们提供了一个简单的示例,来展示如何在base_site.html文件中添加一个自定义标题:

html

{% extends "admin/base_site.html" %}

{% block title %}My Custom Admin Panel{% endblock %}

{% block branding %}

<h1 id="site-name"><strong>My Custom Admin Panel</strong></h1>

{% endblock %}

在上面的代码中,我们使用了Django模板语法来扩展基本模板,并在标题标签中添加了一个标签,以增加标题的重要性。

一下,通过创建一个新的模板目录,并将自定义模板放在其中,并在settings.py文件中进行相应的配置,我们可以解决Django 1.7中更新base_site.html文件不起作用的问题。这使得我们能够更好地定制Django管理界面的外观和功能,以满足我们的特定需求。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号