2011-10-30 2 views
3

Django 테스트 문서에 따르면 장고 클라이언트 응답 객체에는 'templates'가 포함되어 있습니다. "최종 콘텐츠를 렌더링 된 순서대로 렌더링하는 데 사용 된 템플릿 인스턴스 목록입니다. 목록의 각 템플릿에 대해 다음을 사용합니다. template.name은 템플릿이 파일에서로드 된 경우 템플릿의 파일 이름을 가져옵니다 (이름은 'admin/index.html'과 같은 문자열입니다.) "Django 테스트 클라이언트 응답에 템플릿의 빈 목록이 있습니까?

그러나 빈 목록이 나타납니다. 템플릿을 만들었습니다.

from django.test.client import Client 
c = Client() 
response = c.post('/signup/', {'email': '[email protected]', 'password1': 'smith', 'password2': 'smith'}, follow=True) 
print response.templates 
# [] 

왜 템플릿이 비어 있습니까? 어떻게 렌더링 된 템플릿을 볼 수 있습니까?

답변

5

대화 형 세션에서 코드를 사용해 보셨습니까? 장고 documentation는 말한다 : * 코드가 * 파이썬 대화 형 인터프리터에서 일 것입니다 [+]는, 테스트 클라이언트의 기능, 특히 템플릿 관련 기능의 일부는 테스트 동안 만 사용할 수 있습니다

있지만 실행중인 입니다. Django의 테스트 주자가 보기로로드 된 템플릿을 확인하기 위해 흑 마법을 수행하기 때문입니다. 이 검은 마법 (기본적으로 Django의 템플릿 시스템을 메모리에 패치)은 테스트 실행 중에 만 발생합니다.

따라서 테스트를 실행하면 정상적으로 작동합니다.

은 [+] 난 코드 *와 장고 문서에서 위의 예 이 조각을 더 읽을 수 있도록 * 교체했다.

+0

예, 대화식 인터프리터에서 문제가 발생했습니다. –

관련 문제