Django 3.0.6
对于一个模型,我需要一个修改的管理网站模板。
也就是说,我想修改这个模板:
admin/includes/fieldset.html我从Django包目录复制了fieldset.html,并将其放置如下:
/my_project/image/templates/admin/includes/fieldset.html这里图像是我的应用程序。正是这个应用程序需要修改管理模板。
问题是,所有其他模型也得到了这个模板。使用过的模板过滤器不会接收到必要的仿射和爆炸。
我搞糊涂了,也没能组织出必要的目录结构。
如何只为一个图像应用程序使用修改过的模板?
发布于 2020-05-28 17:40:55
你有一些问题。首先,只有以下模板可以在每个应用程序或每个模型下重写
actions.htmlapp_index.htmlchange_form.htmlchange_form_object_tools.htmlchange_list.htmlchange_list_object_tools.htmlchange_list_results.htmldate_hierarchy.htmldelete_confirmation.htmlobject_history.htmlpagination.htmlpopup_response.htmlprepopulated_fields_js.htmlsearch_form.htmlsubmit_line.htmlfieldset.html不在其中,因此您需要查看包含的模板是否在此列表中,如果是,则替换该模板并使用它包含您自己的fieldset.html版本。
另外,您的位置(由于不能覆盖每个应用程序包含的模板):/my_project/image/templates/admin/template.html是不完全正确的。这将覆盖每个应用程序的模板。若要按每个应用程序执行此操作,您需要在admin下再创建一个子目录:
/my_project/image/templates/admin/image/template.html这样做的原因是,模板并不真正关心它们在哪个应用程序中,因此模板驻留在您的image应用程序中这一事实对Django来说并不意味着什么,将它们放在应用程序的子目录中的惯例仅仅是避免覆盖您不打算覆盖的模板。
https://stackoverflow.com/questions/62070528
复制相似问题