2011-12-16 106 views
1

我有一個使用模板來顯示長查詢集(> 800項)的django視圖。視圖渲染需要幾秒鐘的時間,並且渲染整個頁面完成後,會將其發送到瀏覽器。相反,我希望模板呈現爲迭代器,以便它可以在生成時逐行傳輸頁面(以便我可以在瀏覽器中看到該頁面)。我不想等幾秒鐘才能看到任何東西。我的查看返回render_to_response('view_name.html', {items:myitems})Django模板 - 呈現爲迭代器

是否正如我在Django中所描述的那樣將模板呈現給迭代器?

+0

除了由jdi提出的解決方案...你看過你的查詢集生成的查詢嗎?也許你可以在那裏做一些優化?您的查詢是否多次觸及數據庫(例如,顯示關係)? – 2011-12-16 17:41:31

回答

3

不通過模板,沒有。

您可以將HttpResponse作爲迭代器,逐行生成輸出,但模板渲染是一個全合一的過程(因爲需要解析塊等)。

1

你的選擇是使用分頁: 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/

+0

用於提示ajax的+1 ...但Django支持渲染到迭代器嗎? – 2011-12-16 16:32:00