首页  >  文章  >  后端开发  >  如何使用特定于应用程序的扩展覆盖和扩展 Django 管理模板?

如何使用特定于应用程序的扩展覆盖和扩展 Django 管理模板?

DDD
DDD原创
2024-11-12 02:27:02139浏览

How to Override and Extend Django Admin Templates with App-Specific Extensions?

使用特定于应用程序的扩展覆盖和扩展 Django 管理模板

使用 app_directories 时,在扩展 Django 管理模板的同时覆盖它们可能是一个挑战模板加载器。要解决此问题,请考虑使用支持从特定应用程序扩展模板的自定义模板加载器。

解决方案:自定义模板加载器

自定义模板加载器(例如 SmartTemplates)允许您指定要在特定应用程序中扩展的模板。这使您能够创建自己的 admin/index.html 模板,该模板继承自管理应用程序中的 admin/index.html 模板。

例如:

{% extends "admin:admin/index.html" %}

{% block sidebar %}
    {{ block.super }}
    <div>
        <h1>Extra Links</h1>
        <a href="/admin/extra/">My Extra Link</a>
    </div>
{% endblock %}

用法:

  1. 安装 SmartTemplates 软件包。
  2. 配置 TEMPLATE_LOADERS 设置以包含“smart_templates.loader.SmartLoader”。
  3. 放置您的自定义管理/索引项目模板目录中的 .html 模板。

附加说明:

  • Django 版本 2.2 及更高版本提供了对模板继承的内置支持,使用template from 指令,减少了对自定义模板加载器的需求。
  • 有关模板覆盖和扩展的更多详细信息,请参阅您的特定版本的 Django 文档。

以上是如何使用特定于应用程序的扩展覆盖和扩展 Django 管理模板?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn