사용자 정의 을 작성하고 싶습니다. 그것은 하나 개의 인수, HttpRequest
오브젝트를 단지 파이썬 함수, 그리고 템플릿 컨텍스트에 추가됩니다 사전을 반환
는 상황에 맞는 프로세서는 매우 간단한 인터페이스를 가지고 있습니다. 각 컨텍스트 프로세서 은 사전을 반환해야합니다.
사용자 정의 컨텍스트 프로세서는 코드 기반 어디에서나 사용할 수 있습니다. 장고에 관해서는 사용자 지정 컨텍스트 프로세서가 TEMPLATE_CONTEXT_PROCESSORS
설정으로 지정되어 있습니다.
예컨대 :
# in project/context_processors.py
def add_extra_variable(request):
return {'extra': myfunction(request)}
# in settings.py:
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages",
"project.context_processors.add_extra_variable"
)
P.S : 당신이 render
대신 render_to_response
의를 사용하는 경우, 당신은 RequestContext
을 통과 할 필요가 없습니다.
render('page.html', dictionary)
안녕하세요, 그것은 매우 간단하고 좋아 보인다,하지만 난 '는 settings.py에서 기본 설정을했습니다, 그리고'TEMPLATE_CONTEXT_PROCESSORS + = ('project.context_processors.add_extra_variable ')'라인은 그 이후, 그것을 나누기 존재하지 않는다. 만약 내가 단지 그것과 동일하다면,'django.contrib.auth.context_processors.auth'와 같은 다른 것들도 놓칠 것이다. 어떤 생각이라도 어떻게 해결할 수 있니? – user2194805
전체 글을 썼습니다 (편집 내 대답). (또는'django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS'). –
아, 그럼 완벽하게 작동합니다. 고마워요 : -). – user2194805