2017-04-14 18 views
0

我有這樣的代碼Django的 - 如何訪問由父循環計數器在列表中的元素模板

{% for time in listOfTimes %} 
    {% for booking in someOtherList.forloop.parentloop.counter0 %} 
     {{ booking }} 
    {% endfor %} 
{% endfor %} 

booking變量不被打印出來。我認爲這是因爲我不能通過使用forloop計數器訪問someOtherList。我如何獲得booking的價值?

+1

想要通過父循環'listOfTimes'的索引值訪問'someOtherList'的預訂? –

+0

這是正確的。 – Matt

+0

你真的應該改變你的Django視圖和結構的上下文,使邏輯不被模板。創建一個包含所有相關時間數據的字典列表,或者做一些循環內容循環的小事。 –

回答

1

假設你的數據如下:

listOfTimes = ['time1', 'time2'] 
someOtherList = [['booking1', 'booking2'], ['booking3', 'booking4']] 

然後在模板中,你可以這樣做:

{% for time in listOfTimes %} 
    {% for booking in someOtherList|get_index:forloop.counter0 %} 
     {{ booking }} 
    {% endfor %} 
{% endfor %} 

請注意,在上面的代碼get_index過濾器,你需要在寫這個自定義過濾器您應用程序templatetags

from django import template 

register = template.Library() 

@register.filter 
def get_index(l, i): 
    return l[i] 

注意:您的兩個列表應該是相同的大小,否則可能會引發IndexError

相關問題