我创建了一个新包,它非常简单。我很困惑,我应该怎么做模板?创建包时导入Django模板
你看我永远不知道这个应用程序安装在什么项目上,即pip install django-something
,但我希望'应用程序'具有固有的项目模板的使用。
这是我的工作,其他人怎么做?
我创建了一个新包,它非常简单。我很困惑,我应该怎么做模板?创建包时导入Django模板
你看我永远不知道这个应用程序安装在什么项目上,即pip install django-something
,但我希望'应用程序'具有固有的项目模板的使用。
这是我的工作,其他人怎么做?
诀窍是“命名空间”你自己的应用程序的模板。
而不是将您的应用程序的模板存储在yourapp/templates/foo.html
中,请在模板目录中添加另一个目录:yourapp/templates/yourapp/foo.html
。
这意味着你可以区分你应用程序的base.html
和项目base.html
。
在您的应用程序的模板(例如,“foo.html”),你继承你的应用程序的基本模板:
{% extends "yourapp/base.html" %}`.
然后,您可以从项目的base.html文件继承(如果存在的话),由从它开始:
{% extends "base.html" %}
将模板放在项目中配置的加载程序在开始查看应用程序目录之前将找到的位置。
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
。
如果您想知道哪些“块”包含在您的模板中,为了获得最大的可重用性,这是一个很好的帖子:http://ericholscher.com/blog/2008/nov/20/君子-协议,Django的模板/ – Basti