django - 仅对一个 Image 应用使用修改后的管理模板
问题描述
Django 3.0.6
对于一个模型,我需要一个修改后的管理站点模板。
即,我想修改这个模板:
admin/includes/fieldset.html
我从 Django 包目录中复制了 fieldset.html 并将其放置如下:
/my_project/image/templates/admin/includes/fieldset.html
这里的图像是我的应用程序。正是这个应用程序需要修改后的管理模板。
问题是所有其他模型也得到这个模板。并且使用的模板过滤器没有收到必要的参数并爆炸。
好吧,我很困惑,无法组织必要的目录结构。
如何仅将修改后的模板用于一个 Image 应用程序?
解决方案
你有几个问题。首先,每个应用程序或每个模型只能覆盖以下模板:
actions.html
app_index.html
change_form.html
change_form_object_tools.html
change_list.html
change_list_object_tools.html
change_list_results.html
date_hierarchy.html
delete_confirmation.html
object_history.html
pagination.html
popup_response.html
prepopulated_fields_js.html
search_form.html
submit_line.html
fieldset.html
不在那里,因此您需要查看包含模板是否在此列表中,如果是,请替换此模板并使用它来包含您自己的fieldset.html
.
此外,您的位置(略有修改,因为无法覆盖每个应用程序包含的模板):/my_project/image/templates/admin/template.html
不太正确。这将为每个应用程序覆盖该模板。要为每个应用程序执行此操作,您需要 admin 下的另一个子目录:
/my_project/image/templates/admin/image/template.html
这样做的原因是模板并不真正关心它们在哪个应用程序中,因此模板存在于您的image
应用程序中这一事实对 Django 没有任何意义,将它们放在应用程序的子目录中的约定是只是为了避免覆盖您不打算覆盖的模板。
推荐阅读
- uml - 在用例图中显示添加、编辑和删除内容的合适方式是什么?
- c - 如何将 uint8_t * 复制到 char 数组
- visual-studio - xbuild 编译没有错误但没有 .exe 文件?
- javascript - 如何清除推送器的警报消息?
- asp.net - InvalidOperationException:尝试激活时无法解析类型“Microsoft.AspNetCore.Identity.UI.Services.IEmailSender”的服务
- eclipse - 将 jar 文件上传到 Azure Web App 的问题
- javascript - 在 JavaScript 中打印具有给定长度的钻石的代码
- sql - 方程需要在一个 group by 语句中吗?
- python - HTML 使用 BeautifulSoup 解析拥挤的网页
- javascript - 为 quickbooks .iif 文件创建制表符分隔文件