我創建了一個新包,它非常簡單。我很困惑,我應該怎麼做模板?創建包時導入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