【问题标题】:Overriding the Django admin change_list_results.html only for some models仅针对某些模型覆盖 Django 管理员 change_list_results.html
【发布时间】:2011-08-21 06:04:23
【问题描述】:

我只想为我的一个模型覆盖 templates/admin/change_list_results.html 和 templates/admin/change_list.html 模板。 如何告诉管理员将此模型与我的应用程序中的所有其他模型区分开来并呈现与默认不同的更改模板? 如果我只是编辑 change_list_results.html,那么管理视图中的所有模型都会反映我的更改。

【问题讨论】:

    标签: django django-models django-admin django-templates django-views


    【解决方案1】:

    您可以,请参阅文档here

    简短的版本是您需要在模板路径中的admin/your-app-name/your-model-name/change_list.html 处的自定义模板。它可以在应用程序中或在您的根模板目录中。

    一个问题是 Django 需要先找到它,然后才能在 django.contrib.admin 中找到默认的“admin/change_list.html”。如果它在应用程序中,请确保该应用程序在INSTALLED_APPS之前 django.contrib.admin 列出。我通常只是将管理模板覆盖放在我的根模板文件夹中,因为它会在应用程序之前加载。

    【讨论】:

    • 这不适用于 change_list_results.html,因为它不支持 your-app-name/your-model-name 样式覆盖。
    【解决方案2】:

    恕我直言,因为 change_list_results.html 是从 template_tag -> result_list 调用的。

    https://github.com/django/django/blob/master/django/contrib/admin/templates/admin/change_list.html#L91

    https://github.com/django/django/blob/65cf82bd08631a7aa8d9dd007b2527476fa3304f/django/contrib/admin/templatetags/admin_list.py#L288

    我想看看如果你覆盖或修改该模板标签会发生什么。但是导入顺序在这方面发挥了很大作用。

    【讨论】:

      猜你喜欢
      • 2013-08-14
      • 1970-01-01
      • 2011-07-26
      • 2010-11-19
      • 2019-07-09
      • 1970-01-01
      • 2016-09-04
      • 1970-01-01
      • 2013-01-23
      相关资源
      最近更新 更多