2011-04-29 56 views
1

我真的很享受從PHP到Python/Django的過渡以及擴展模板的能力。然而,我仍然發現我仍然在定義模板和擴展其他模板等方面做了一些重複性的工作。只是想知道是否有人知道如何將所有這些抽象成一個文件來告訴哪些模板其他模板應該擴展/包含?Django - 定義模板包含/擴展在一個地方以相同的方式url路徑在urls.py中定義?

+0

我認爲你的意思只是擴展,因爲在模板中的特定位置使用了包含。帽子是不可能做到的。延伸將會**不可能。 – 2011-04-29 04:11:22

回答

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 %} 
相關問題