Шаблоны Django - рендеринг в итератор - PullRequest
1 голос
/ 16 декабря 2011

У меня есть представление django, которое использует шаблон для отображения длинного набора запросов (> 800 элементов). Рендеринг представления занимает несколько секунд, а когда он завершает рендеринг всей страницы, он отправляет его в браузер. Вместо этого я хочу, чтобы шаблон отображался как итератор, чтобы он мог передавать страницу построчно (и чтобы я мог видеть страницу в моем браузере) по мере ее создания. Я не хочу ждать несколько секунд, прежде чем что-либо увидеть.

Прямо сейчас мой взгляд возвращается render_to_response('view_name.html', {items:myitems}).

Возможно ли рендеринг шаблона для итератора, как я описал, в Django?

Ответы [ 2 ]

3 голосов
/ 16 декабря 2011

Не с помощью шаблонов, нет.

Вы можете рассматривать HttpResponse как итератор, получая выходные данные построчно, но рендеринг шаблонов - это процесс «все в одном» (как и должно быть), из-за необходимости разрешать блоки и т. д.).

1 голос
/ 16 декабря 2011

Ваши варианты будут использовать нумерацию страниц: https://docs.djangoproject.com/en/dev/topics/pagination/

Или использовать ajax. Вы загрузите свою страницу и затем запросите данные через ajax-запрос. Проверьте JQuery.

Редактировать
Добавление дополнительных ссылок Вот пример использования jquery и HttpResponse с итератором: http://forum.jquery.com/topic/ajax-partial-response

Вот пример того, как кто-то возвращает фрагментированный ответ из файла в файловой системе: http://djangosnippets.org/snippets/365/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...