【问题标题】:Cannot Extend Django 1.2.1 Admin Template无法扩展 Django 1.2.1 管理模板
【发布时间】:2011-02-28 21:51:36
【问题描述】:

我正在尝试在 1.2.1 版本中覆盖/扩展 Django 管理员的标头。但是,当我尝试扩展管理模板并简单地更改我需要在此处记录的内容时:http://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-vs-replacing-an-admin-template),我遇到了递归问题。

我在项目的 templates/admin/ 目录中有一个 index.html 文件,该文件以

开头
{% extends "admin/index.html" %}

但这似乎是在引用本地索引文件(也就是它本身),而不是默认的 Django 副本。我想扩展默认的 Django 模板并简单地更改几个块。当我尝试这个文件时,我得到一个递归深度错误。

如何扩展部分管理功能?谢谢。

解决方案:我没有扩展,而是将文件复制到 my_templates_directory/admin/ 并按我的意愿编辑它们。这个解决方案是可以接受的,但并不理想。

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    解决方案:我没有扩展,而是将文件复制到 my_templates_directory/admin/ 并按我的意愿编辑它们。这个解决方案是可以接受的,但并不理想。

    【讨论】:

      【解决方案2】:

      在您的模板目录中创建一个指向contrib/admin/templates/admin/ 的符号链接,并在您的{% extends %} 语句中使用它。

      cd /path/to/project/templates/
      ln -s /path/to/django/contrib/admin/templates/admin/ django_admin
      

      现在在您的admin/index.html 中使用{% extends "django_admin/index.html" %}

      编辑:刚刚意识到您在 Windows... 不知道如何获得相同的结果。希望这仍然对 linux 上的人们有所帮助。

      【讨论】:

        【解决方案3】:

        contrib/admin/templates/admin 路径需要位于您的 TEMPLATE_DIRS 中的路径列表中的自定义管理模板目录之前 settings.py

        【讨论】:

        • 我将“C:/Python26/Lib/site-packages/django/contrib/admin/templates/admin”放在 TEMPLATE_DIRS 中我的项目模板目录之前,但我仍然无法让模板覆盖工作。我仍在使用与我原来的帖子相同的延伸线。这种需求是否也发生了变化?
        猜你喜欢
        • 2017-04-10
        • 2011-04-27
        • 2011-04-16
        • 2018-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-16
        相关资源
        最近更新 更多