2013-03-02 81 views
0

我可以從父模板的forloop中獲取forloop值嗎?即:Django:使用父模板的forloop值

parent.html 
{% extends 'base.html' %} 
{% block content %} 
    {% for i in nnn %} 
     {% include child.html %} 
    {% endfor %} 
{% end block %} 

child.html 
{% extends 'base.html' %} 
{% block content %} 
    {{ forloop.counter from parent.html }} 
{% endblock %} 

def ViewParent(request): 
    return render_to_response('parent.html', {}, context_instance) 

回答

1

include模板標籤支持使用with keyword參數的通道。

parent.html:

{% extends 'base.html' %} 
{% block content %} 
    {% for i in nnn %} 
     {% include child.html with loop_counter=forloop.counter %} 
    {% endfor %} 
{% end block %} 

child.html:

{{ loop_counter }} 

請注意,你可能不會實際上意味着延長從相同的基礎模板,因爲父子模板,所以在這個例子中我省略了這一點。

+0

我希望你的意思是'{%... with loop_counter = i%}''。我理解你對擴展'base.html'的評論,但我有一個包含可能包含或可能不包含的元素的頁面。所以你看到的是我試圖抽象構建呈現的html的方式。所以在'parent.html' forloop之前可能會出現'{%if boo%} {%include element.html%} {%endif%}'。 – Cole 2013-03-02 22:55:48

+1

是的,我不是指'= 1'。我更新了'loop_counter = forloop.counter'來與你的例子保持一致。 – 2013-03-03 00:51:05