小编典典

Django:覆盖和扩展应用模板

django

如果要覆盖django中应用程序随附的模板(在app / templates / app /中),请在另一个目录中创建相同名称的模板,模板加载器会在应用程序的模板目录之前检查该模板。如果您只想覆盖模板的某些块,则还必须复制整个模板广告,更改该块,这实际上不是很干。

有人知道一种方法来覆盖原始模板,同时扩展它,以便您只需要覆盖要更改的特定块吗?(这样做是在不更改模板名称的情况下进行的,因为在某些情况下,您可能必须更改视图才能使其与其他模板一起使用)


阅读 481

收藏
2020-04-01

共1个答案

小编典典

我认为这个相关问题的答案是恰当的。当前,最好的解决方案似乎是使用PyPI上django-apptemplates包中的自定义模板加载器,因此你可以使用pip进行安装(例如pip install django-apptemplates)。

模板加载器允许你在特定应用中扩展模板;例如,要扩展管理界面的索引页,你可以添加

'apptemplates.Loader',

到中的TEMPLATE_LOADERS列表settings.py,然后使用

{% extends "admin:admin/index.html" %}
2020-04-01