2011-12-24 2 views
2

내가 업데이트 된 yourlabs 가입 예제를 사용하는 것을 시도하고있다 렌더링, 및 설치가 구독 앱에서yourlabs-가입 오류 -

  • 제외하고 각각의 뷰를 잘 작동 반면 VariableDoesNotExist을 잡았다가 반환 렌더러에서 템플릿에 변수를 요청하십시오.

  • request context 변수는 템플릿에 수신되지 않은 결과로 나는이 문제를 해결할 수없는이 있기 때문에

    Caught VariableDoesNotExist while rendering: Failed lookup for key [request] in u

모든 뷰에서 반환되는 다음과 같은 오류를 얻고있다 특정 템플릿에서 약간의 조작을하면 문제가 발생합니다.

+0

yourlabs-subscription의 뷰는 shortcuts.render를 사용하며 컨텍스트에서 요청 객체를 전달하지 않습니다. 컨텍스트 프로세서를 실행할 수 있도록 django.shortcut.render에 요청 객체를 전달합니다. django.core.context_processors.request는 컨텍스트에서 요청을 설정하는 컨텍스트 프로세서입니다. – jpic

답변

2

request이 템플릿의 컨텍스트에없고 템플릿에서 일부 템플릿 코드 인 expec 그곳에있을테니까. 그 코드 (예를 들어, 사용자 정의 템플릿 태그) better handleVariableDoesNotExist

또한, 귀하의 의견은 아마 명시 적으로 모든 응답에 request을 반환하지 않아야한다. 장고가 이것을 처리하도록하십시오.

이렇게하려면 TEMPLATE_CONTEXT_PROCESSORS에 장고와 request template context processor 그 선박을 추가

TEMPLATE_CONTEXT_PROCESSORS = (
    ... 
    'django.core.context_processors.request', 
    ... 
) 

이미이 템플릿의 상황에 맞는 프로세서를 사용하는 경우 (아래 render_to_response이 최종 인수로 context_instance=RequestContext(request) 호출되어 있는지 확인 예시) docs에서입니다 :

def some_view(request): 
# ... 
return render_to_response('my_template.html', 
          my_data_dictionary, 
          context_instance=RequestContext(request)) 

이 모든 dicts이에서 템플릿 상황에 맞는 프로세서에 의해 반환 보장은 템플릿으로 전달됩니다.

rendershortcut을 사용하면 템플릿을 Requestcontext으로 자동 렌더링합니다.

Django 1.3에 추가 된 또 다른 옵션은 TemplateResponse이며 RequestContext 인스턴스도 사용합니다.

+0

렌더링 바로 가기 *는 yourlabs- 구독보기에서 사용하는 것입니다. – jpic