我有一個使用模板來顯示長查詢集(> 800項)的django視圖。視圖渲染需要幾秒鐘的時間,並且渲染整個頁面完成後,會將其發送到瀏覽器。相反,我希望模板呈現爲迭代器,以便它可以在生成時逐行傳輸頁面(以便我可以在瀏覽器中看到該頁面)。我不想等幾秒鐘才能看到任何東西。我的查看返回render_to_response('view_name.html', {items:myitems})
。Django模板 - 呈現爲迭代器
是否正如我在Django中所描述的那樣將模板呈現給迭代器?
我有一個使用模板來顯示長查詢集(> 800項)的django視圖。視圖渲染需要幾秒鐘的時間,並且渲染整個頁面完成後,會將其發送到瀏覽器。相反,我希望模板呈現爲迭代器,以便它可以在生成時逐行傳輸頁面(以便我可以在瀏覽器中看到該頁面)。我不想等幾秒鐘才能看到任何東西。我的查看返回render_to_response('view_name.html', {items:myitems})
。Django模板 - 呈現爲迭代器
是否正如我在Django中所描述的那樣將模板呈現給迭代器?
不通過模板,沒有。
您可以將HttpResponse作爲迭代器,逐行生成輸出,但模板渲染是一個全合一的過程(因爲需要解析塊等)。
你的選擇是使用分頁: 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/
用於提示ajax的+1 ...但Django支持渲染到迭代器嗎? – 2011-12-16 16:32:00
除了由jdi提出的解決方案...你看過你的查詢集生成的查詢嗎?也許你可以在那裏做一些優化?您的查詢是否多次觸及數據庫(例如,顯示關係)? – 2011-12-16 17:41:31