필자는 모든 뷰 (주로 사용자 정의 인증 유형 변수)에 특정 변수를 전달해야하는 시점에 왔습니다.django에서 내 자신의 컨텍스트 프로세서 만들기
내 자신의 컨텍스트 프로세서를 작성하는 것이 가장 좋은 방법이라고 들었지만 몇 가지 문제가 있습니다. 당신이 볼 수 있듯이
내 설정 파일은 내가 'context_processors'라는 모듈과 'say_hello'라는 그 내에서 기능을 가지고,이
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.contrib.messages.context_processors.messages",
"sandbox.context_processors.say_hello",
)
것 같습니다.
내가 바로 지금 내보기 내에서 다음과 같은 작업을 수행 할 수 가정하는 건가요
def say_hello(request):
return {
'say_hello':"Hello",
}
처럼 보이는 무엇입니까?
{{ say_hello }}
지금 당장 템플릿에 아무 것도 렌더링되지 않습니다.
내보기를 작성한 상황에 맞는 프로세서가 작동해야
from django.shortcuts import render_to_response
def test(request):
return render_to_response("test.html")
'context_instance'가 누락되었습니다. 감사합니다 TM – dotty
후속 조치, 어떻게해야 합니까이 context_instance? django의 인증 시스템을 사용하면 어떻게해야합니까? – dotty
Django의 빌트인 뷰는 이것을 처리합니다 (그들은'RequestContext'를 사용합니다). 당신이 만든 컨텍스트 프로세서에 대해 생각해보십시오. 그것은 인수로서'request'를 취합니다. 즉, 렌더링 논리에 현재 요청을 어떻게 든 전달해야합니다. 'RequestContext'는 기본적으로 모든 컨텍스트 프로세서를 루핑하고 현재 요청을 그들에게 전달한 다음 페이지 컨텍스트를 결과로 업데이트하는 간단한 논리를 처리합니다. –