【问题标题】:Override admin fieldset for model in app覆盖应用程序中模型的管理字段集
【发布时间】:2018-07-31 23:28:24
【问题描述】:

Django admin docs 声明您可以通过将模板放在应用程序中templates/admin 文件夹的my_app/my_model 子目录中来覆盖特定应用程序中特定模型的模板。

我正在尝试覆盖 my_app 中 my_model 的 includes/fieldset.html 模板。将其另存为 my_app/admin/my_app/my_model/includes/fieldset.html 似乎不起作用,而 my_app/admin/includes/fieldset.html 可以,但会覆盖管理站点中所有页面的模板。

有没有办法实现这种行为?

【问题讨论】:

  • “似乎不起作用”不是问题描述。请确认您已按照开始链接中的每个步骤进行操作(请注意,它表示您的 项目的 templates 目录)。你的settings.TEMPLATE 是什么?
  • 我确信模板设置正确——从应用程序模板目录的根目录加载模板有效。 TEMPLATE include APP_DIRS: True and my_app is included in INSTALLED_APPS above django.contrib.admin
  • 您应该编辑您的问题以填写额外信息,而不是将其隐藏在 cmets..

标签: django


【解决方案1】:

是的,行为是正确的,因为并非每个模板都使用此方法覆盖每个应用程序或模型 please read this

允许的模板是:

  1. app_index.html
  2. change_form.html
  3. change_list.html
  4. delete_confirmation.html
  5. object_history.html
  6. popup_response.html

所以我所做的是覆盖每个应用程序和模型的所有这些或添加到 admin.py 类 change_form_template = 'admin/appname/customtemplate.html' 这将使您可以完全控制模板。您还可以/需要使用内部包含更改所有内部模板。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    相关资源
    最近更新 更多