2017-08-15 96 views
0

我正在使用需要在每個頁面上更改的橫幅圖像,我想在html模板中設置橫幅,以便我可以輕鬆地將其構建到的人添加新頁面。django在模板中設置全局變量

我在django中開發它,但我無法弄清楚如何讓它工作,請幫助!

例如:

的index.html

set image url here 
{% extends 'base.html' %} 

base.html文件

<html> 
    <body> 
    {% include 'top.html %} 
    </body> 
</html> 

的top.html

<div> 
    <img src="{{ image url }}"> 
</div> 

回答

0

Django模板語言不會你可以設置變量。你可以通過使用塊來達到類似的效果。您的基本模板更改爲:

base.html文件

<html> 
    <body> 
    <div> 
     <img src="{% block image_url %}/default_image.jpg{% endblock %}"> 
    </div> 
    </body> 
</html> 

然後覆蓋image_url塊在你的模板,例如

的index.html

{% extends 'base.html' %} 
{% block image_url %}/images/index.jpg{% endblock %} 

注意,這種方法就不能使用{% include top.html %},因爲你不能覆蓋已經包括在{% include %}標籤塊。

+0

嗨阿拉斯代爾...我害怕這一點。 Django繼續令人失望! ...但感謝您的幫助! – user2083317

0

好,我不很瞭解,但如果你刪除的top.html,包括像基本的內容應該會更好:

<html> 
    <body> 
    <div> 
     <img src="{% block url_img %}{% enblock %}"> 
    </div> 
    </body> 
</html> 

,並在索引

{% extends 'base.html' %} 
{% block url_img %}here images url{% endblock %} 

如果您使用top.html作爲其他目的,請執行相同操作:

{% extends 'base.html' %} 
{% block url_img %}{{ image url }}{% endblock %} 
+0

嗨Mauricio ...嘗試了你的建議,它不工作!所有我得到的是src =「」 – user2083317

+0

然後有一個問題的塊,在div內創建一個空塊,並粘貼所有標籤明顯的網址 –