如何仅针对 1 个应用程序覆盖 django edit_inline/tabular.html?
Posted
技术标签:
【中文标题】如何仅针对 1 个应用程序覆盖 django edit_inline/tabular.html?【英文标题】:How to override django edit_inline/tabular.html for only 1 app? 【发布时间】:2011-01-16 20:30:29 【问题描述】:如果我将edit_inline/tabular.html
保存在我的整个模板目录中(例如mysite/templates/admin/edit_inline/tabular.html
),我可以覆盖它,但是当我尝试使用其他管理模板保存它时,例如change_form.html
(在mysite/myapp/templates/admin/myapp/mymodel/change_form.html
中,它不会不行。
【问题讨论】:
【参考方案1】:我遇到了这个有点旧的线程,实际上对于内联模型,您需要在 admin.py 中明确设置新模板,如下所示:
class ModelInlineAdmin(admin.StackedInline):
model = Product
template = "admin/products/product/edit_inline/stacked.html"
检查这个http://blog.ruedaminute.com/2011/05/django-journal-override-a-django-admin-template-inline-or-otherwise/
【讨论】:
感谢您的回答,请注意提供的链接已失效。【参考方案2】:The documentation 暗示内联可以具有template
属性。尝试将其设置为admin/myapp/mymodel/edit_inline/tabular.html
,并在myapp
的templates
目录下创建相应的模板文件。
【讨论】:
【参考方案3】:表格是这样的:
templates/admin/app_name/override.html
对于你的 change_form.html 例子,它应该是这样的:
mysite/templates/admin/myapp/change_form.html
请参阅http://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-admin-templates 了解更多信息。
【讨论】:
这不回答关于内联的问题,只回答常规的管理页面。以上是关于如何仅针对 1 个应用程序覆盖 django edit_inline/tabular.html?的主要内容,如果未能解决你的问题,请参考以下文章
仅针对测试数据覆盖 Grails dateCreated 和 lastUpdated?
每个模型覆盖 django admin change_list_results.html
仅针对一项操作覆盖控制器 AuthorizeAttribute