2011-12-16 3 views
1

템플릿을 사용하여 긴 쿼리 세트 (> 800 개 항목)를 표시하는 장고보기가 있습니다. 보기를 렌더링하는 데 몇 초가 걸리고 전체 페이지 렌더링이 끝나면 브라우저로 보내집니다. 대신 템플릿을 반복자로 렌더링하여 생성 된 페이지를 라인 단위로 전송할 수 있습니다. 따라서 브라우저에 페이지가 표시 될 수 있습니다. 나는 무엇이라도보기 전에 몇 초를 기다리지 않으려 고합니다.장고 템플릿 - 반복자로 렌더링

지금 내보기는 render_to_response('view_name.html', {items:myitems})을 반환합니다.

장고에서 설명한대로 템플릿을 반복자에 렌더링하고 있습니까? https://docs.djangoproject.com/en/dev/topics/pagination/

또는 아약스를 사용하는 :

+0

jdi가 제안한 솔루션 외에 ... 쿼리 세트에서 생성 한 쿼리를 보았습니까? 어쩌면 거기에서도 최적화를 할 수 있을까요? 귀하의 질의가 한 번 이상 데이터베이스에 충돌합니까 (예 : 관계 표시 용)? –

답변

3

템플릿을 통해 아니요. 아니요.

HttpResponse를 반복자로 취급하여 출력을 줄 단위로 표시 할 수 있지만 템플릿 렌더링은 올인원 프로세스입니다 (블록을 ​​해결해야하기 때문에 필요합니다).

1

옵션은 페이지 매김을 사용하는 것입니다. 페이지를로드 한 다음 Ajax 요청을 통해 데이터를 요청합니다. jquery를 확인하십시오. 여기

http://forum.jquery.com/topic/ajax-partial-response가 파일 시스템에있는 파일에서 청크 응답을 반환 사람의 예입니다 : 여기에 더 많은 링크 추가

편집
누군가 사용 JQuery와의 예 반복자과 HttpResponse에 있습니다 : http://djangosnippets.org/snippets/365/

+0

아약스를 제안하는 +1 ... 장고는 반복자에 렌더링을 지원합니까? –

+0

아니요. 전체 페이지를 나타내는 반복자를 만들면 수동으로해야 할 것이라고 생각합니다. 즉, 항목은 모두 반복기의 청크로 렌더링됩니다. 그런 다음 HttpResponse에 전달합니다. – jdi