settings.py 를 template에서 사용하기 위해서는 기본적으로 context할때 값을 넣어 주는 수 밖에 없다.
context = {'DEBUG': settings.DEBUG}
근데 view에서 매번 이것을 세팅해서 넘겨주는건 좀 아니지 않을까? :)
그래서 context_processor를 사용하여 모든 request의 context에 값을 세팅 할 수 있다.
myapp/context_processors.py를 아래와 같이 작성하자.
def load_settings(request):
return {'DEBUG':settings.DEBUG}
그리고 settings.py에 아래와 같이 CONTEXT_PROCESSOR를 등록한다.
86 TEMPLATE_CONTEXT_PROCESSORS = (
87 'myapp.context_processors.load_settings',
88 'django.contrib.auth.context_processors.auth',
89 )
template에서의 사용법은 아래와 같다.
<div>{{DEBUG}}</div>
application으로 들어오는 모든 request를 Catch하기 때문에, 한번 해두면 어디서든 쓸 수 있다.