2012-04-22 81 views
-1

接受變量例如,這是行不通的:Django不模板中

{% for i in artist_number %} 
    <li><a href="#{{ forloop.counter0 }}">{{hash_1.items.forloop.counter0.0}}</a></li> 
{% endfor %} 

但這個工程:

{% for i in artist_number %} 
    <li><a href="#{{ forloop.counter0 }}">{{hash_1.items.0.0}}</a></li> 
{% endfor %} 

爲什麼一點兒也不Django的只是把forloop.counter0的價值這裏hash_1.items.X.0

這只是一個例子。這裏是另一個問題,我解決不了:

list = [0,1,2,3,4,5,6,7,8,9,10] 
hash_1= {} 
#some operations done with these variables. 

{% for i in list %} 
    <li><a href="#{{ forloop.counter0 }}">{{hash_1.items.i.0}}</a></li> 
{% endfor %} 
+1

您不能使用變量的值以這種方式進行查找。 想一想:django如何區分解釋'hash_1.items.forloop.counter0.0',因爲'items'是對'hash_1'的查找,但是突然間'forloop'是一個來自不同範圍的變量查找,而不是字面上是一個叫'forloop'的鍵? – 2012-04-22 20:10:45

+1

這是從第1天開始在Django模板引擎中出現的幾個明顯弱點之一。我從來沒有見過「模板設計器」,只有程序員被迫做模板工作,因爲設計師只是不要得到它。 – 2012-04-23 00:05:30

回答

0

你想要麼{% with %}slice

+0

可以請你解釋一下如何使用{%with%}或slice來完成這項工作:{{hash_1.items.forloop.counter0.0}} – markAnthopins 2012-04-22 19:10:54