2014-03-26 3 views
0

자식의 if 문에서 부모 for for 루프의 변수를 사용할 수 있습니까? Django : 자식 내에서 for 루프의 변수를 사용할 수 있습니다. if 문

은 예입니다

{% for ruleset in rulesets %} 
    <div>{{ ruleset.0 }}</div> 
    <ul> 
    {% for rule in rules %} 
     {% if rule.0 = {{ ruleset.0 }} %} 
     <li>{{ rule.1 }}</li> 
     {% else %} 
     <!-- Nothing --> 
     {% endif %} 
    {% endfor %} 
    </ul> 
{% endfor %} 

내가 점점 오전 오류는 다음과 같습니다 % (최대 개까지 [토큰 : 인상 TemplateSyntaxError는 (" '% S'에서 '% s'이 (가) 나머지를 구문 분석 할 수 없습니다" ] 토큰)) TemplateSyntaxError : 나머지를 파싱 할 수 없습니다. '{{'from '{{

} 나는 if 문에서 {{ruleset.0}}을 이해할 수 없다는 것을 의미합니다. 이 문제를 해결하는 방법에 대한 제안 사항은 무엇입니까?

답변

2

구문이 잘못되었습니다. {% ... %} 문 안에 {{ ... }}을 사용할 수 없습니다.

이 루프에 대한 외부의 범위를 상속해야 루프 내부로 작동합니다 :

{% for ruleset in rulesets %} 
<div>{{ ruleset.0 }}</div> 
<ul> 
    {% for rule in rules %} 
    # = is an assignment operator (which doesn't work in templates), 
    # == is the equality operator, which you want to use. 
    # alternatively you can use {% ifequal rule.0 ruleset.0 %}{% else %}{% endifequal %} 
    {% if rule.0 == ruleset.0 %} 
     <li>{{ rule.1 }}</li> 
    {% else %} 
     <!-- Nothing --> 
    {% endif %} 
    {% endfor %} 
</ul> 
{% endfor %} 
+0

당신은 또한 내부 중첩 루프 –

+0

의 끝에서 또 다른'{% ENDFOR %}'태그를 그리워 @ 가브리엘 암 그램. 답을 말하면, 'forloop.parent'가 부모의 for 루프 범위에있는 변수에 접근하는 데 필요한지 아니면 부모의 for 루프'counter','counter0'에 액세스 할 수 있는지 등을 알고 있습니까? – knbk

+0

그게 효과가! 너무 간단하고, 아직 그것은 나를 미치게했다 ... 고마워 ... – koend