要按照您在評論中說的創建可插入應用程序,可以在應用程序內創建一個模板目錄,例如app/templates
,而不是template_dir設置中的目錄。
在模板中,使用擴展爲繼承可能因站點而異的基本html文件。
在模板呈現表
table.html
{% extends "base.html" %}
{% block content %}
{% include "cleantable.html" %}
{% endblock %}
base.html
<html>
project specific CSS
project specific JS
<body>
{% block content %}
{% endblock %}
</body>
</html>
所以實際上你的項目結構將作如下
project
|
|---pluggable
| |
| |--templates
| | |
| | |---cleantable.html
| | |
| | |---table.html
| |
| |--views.py <renders pluggable templates>
|
|---templates<site specific templates>
| |
| |---base.html<site specific design>
|
|---<other apps>
來源
2013-05-05 18:23:30
rjv
你有用於生成表的模板中的代碼,你想要在其他項目中使用它嗎? – rjv 2013-05-05 18:08:02
呃...是的。但是,從你的問題的口氣來看,似乎我不應該這樣做。 :)我的希望是製作一個完全可插入的應用程序關於它的模板。 – Rodrogo 2013-05-05 18:12:23
@Rodrogo:你無法「讓你的應用程序完全插入其模板」,因爲你無法知道某個項目的基本模板將如何構造,將定義哪些塊等等。你可以做的最好的事情是提供最簡單的工作模板和視圖上下文的良好文檔(包括可能來自上下文處理器的內容),以便您的應用程序的用戶可以輕鬆覆蓋它們。 – 2013-05-05 18:19:34