我正在创建一个新包,非常简单。我很困惑,我该怎么做模板?
你知道我永远不知道这个应用程序安装在pip install django-something
上的项目是什么,但是我希望'app app'固有其所使用的项目模板。
这是我的工作,其他人如何做到这一点?
答案 0 :(得分:1)
将模板放在项目中配置的加载器在开始查看应用程序目录之前找到的位置。
E.G。
如果你有:
TEMPLATE_LOADERS = ('django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader')
TEMPLATE_DIRS = 'myproject/templates'
并且应用会查找foo/bar.html
,然后您只需创建myproject/templates/foo/bar.html
即可覆盖内置模板。
答案 1 :(得分:1)
诀窍是“命名”你自己的应用程序的模板
不要将应用的模板存储在yourapp/templates/foo.html
中,而是在模板目录中添加另一个目录:yourapp/templates/yourapp/foo.html
。
这意味着您可以区分应用 base.html
和项目的 base.html
。
在您应用的模板中(例如,'foo.html'),您继承了应用的基本模板:
{% extends "yourapp/base.html" %}`.
然后您可以从项目的base.html(如果存在)继承,通过以下方式继承:
{% extends "base.html" %}