2010-12-03 2 views
4

장고 sayContextContextContextContextDjango 템플릿에서 'Context`는 스택입니다. 무엇 때문에?

from django.template import Context 
c = Context() 
c['a'] = 1 
c.push() # Make a new Context level 
c['a'] = 2 
print(repr(c)) # [{'a': 1}, {'a': 2}] 
from django.template import Context 
c = Context() 
c['a'] = 1 
c.push() # Make a new Context level 
c['a'] = 2 
print(repr(c)) # [{'a': 1}, {'a': 2}] 

또한

스택을 컨텍스트로 사용하면 일부 사용자 정의 템플릿 태그에서 편리하게 사용할 수 있습니다.

그러나 , 그 예가 없습니다. 내 제안 : 깨끗한 컨텍스트로 하위 템플릿을 렌더링하는 것이 유용합니다. 그러나 새로운 빈 Context() 객체를 대신 사용할 수 있습니다.

그럼, 사용 사례는 무엇입니까?

답변

1

유스 케이스는 예를 들어 루프 및 템플릿 상속에서 유효 범위가 지정됩니다.

+1

오, 정말. 나는 그것을 생각했으나 문서는 그런 행동에 대해 아무 말도하지 않았다. :) 그래서 : 위의 범위에서 키가 누락되었을 때 - 그것은 더 멀리 검색된다. 키가 추가/수정되면 이러한 변경 사항은 낮은 범위에 영향을주지 않습니다. – kolypto

관련 문제