我真的很享受從PHP到Python/Django的過渡以及擴展模板的能力。然而,我仍然發現我仍然在定義模板和擴展其他模板等方面做了一些重複性的工作。只是想知道是否有人知道如何將所有這些抽象成一個文件來告訴哪些模板其他模板應該擴展/包含?Django - 定義模板包含/擴展在一個地方以相同的方式url路徑在urls.py中定義?
1
A
回答
0
簡單的答案是,不具有默認功能。將{% base %}
標籤抽象爲另一個文件會使得模板難以閱讀。
消除「額外工作」的一種方法是讓你的編輯器爲你做。在我的情況下,我將所有模板定義爲.dhtml
文件,並在模板中將VIM粘貼到文件中,只要我打開空的.dhtml
文件即可。大多數以編程爲中心的編輯器都內置了此功能,以防止您不得不手動複製/粘貼或重新鍵入您的基本結構。
要考慮的另一件事是,您可能正在以一種不太理想的方式自己構建模板。例如,如果你有不同的基礎模板,你可以用CSS替換不同的基礎模板嗎? CSS可以按照程序員有時可以忽略的方式來改變模板。例如,請查看CSS Zen Garden。你看到的變化是驚人的,它們根本不會改變基本的HTML。
對於這樣的改變,你可以簡單地擁有這templates/base.html
:
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/default.css" />
{% block extracss %}{% endblock %}
而且爲了包括壓倒一切的CSS,你把這個在您的模板:
{% extends "base.html" %}
{% block extracss %}
<link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}css/orchid_beauty.css" />
{% endblock %}
相關問題
- 1. 在一個地方定義根路徑
- 2. 不包含一個定義,也沒有找到擴展方法
- 3. CMake:定義自定義包含路徑
- 4. Django自定義包含模板
- 5. 不含定義或擴展方法
- 6. 定義一個內聯擴展方法
- 7. 文件路徑Django的擴展模板
- 8. 如何寫谷歌地圖自定義擴展在一個乾淨的方式
- 9. 不包含「CreateObjectSet」,沒有擴展方法的定義「CreateObjectSet」
- 10. 「ASP.business_aspx」不包含「submitSearchClick」,沒有擴展方法的定義「submitSearchClick」
- 11. 不包含'Form1'的定義並且沒有擴展方法'Form1'
- 12. 'System.Web.HttpPostedFileBase'不包含'HasFile'的定義,也沒有擴展方法'HasFile'
- 13. 'ASP.default_aspx'不包含'DS_Filtering'的定義,也沒有擴展方法
- 14. system.array不包含ToArray的定義,也沒有擴展方法
- 15. 'filt.dynamic'不包含'name2'的定義,也沒有擴展方法'name2'
- 16. 'double'不包含'Text'的定義,也沒有擴展方法
- 17. 擴展方法定義/調用在F#
- 18. 不包含「」的定義,並沒有擴展方法接受第一個參數
- 19. 不包含定義...並且沒有擴展方法
- 20. 「double」不包含定義,並且找不到擴展方法?
- 21. 不包含定義,也沒有擴展方法錯誤
- 22. XXX不包含定義,也沒有擴展方法
- 23. C#不包含用於定義和沒有擴展方法
- 24. 「不包含定義...並沒有擴展方法。」錯誤
- 25. errorProvider1不包含定義,也沒有擴展方法
- 26. 「不包含定義...並沒有擴展方法。」錯誤
- 27. 錯誤:類不包含定義,並沒有擴展方法
- 28. 「INT」不包含定義和沒有擴展方法
- 29. protobuf-net擴展:「已包含定義」
- 30. django模板:包含並擴展
我認爲你的意思只是擴展,因爲在模板中的特定位置使用了包含。帽子是不可能做到的。延伸將會**不可能。 – 2011-04-29 04:11:22