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하기 때문에, 한번 해두면 어디서든 쓸 수 있다.

 

+ Recent posts