我有一個頁面顯示按日期分組的消息,並通過AJAX進行分頁。
考慮數據庫包含9個消息Django AJAX帶分組加載分頁
- 3被送往2月9日
- 3被送往8二月
- 3被送往2月7日
和查詢集僅由5個消息限於。
查看代碼看起來像這樣
page = Paginator(queryset, int(request.GET['limit'])).page(request.GET['page'])
return paginator.page(request.GET['page']).object_list
HTML看起來像這樣
<div class='messages-container'>
{% include 'messages-snippet.html' %}
</div>
<a href='?page=2&limit=5'>Load older</a>
和消息 - 摘錄的HTML看起來像這樣
<div class='day-messages'>
<span>9 Feb 2012</span>
<p class='message'>Message 1</p>
<p class='message'>Message 2</p>
<p class='message'>Message 3</p>
</div>
<div class='day-messages'>
<span>8 Feb 2012</span>
<p class='message'>Message 4</p>
<p class='message'>Message 5</p>
</div>
因此當客戶端點擊「加載較老的「時,瀏覽器將把請求發送到相同的視圖,這將在消息sni上進行渲染PPET模板,產生HTML代碼這樣
<div class='day-messages'>
<span>8 Feb 2012</span>
<p class='message'>Message 6</p>
</div>
<div class='day-messages'>
<span>7 Feb 2012</span>
<p class='message'>Message 7</p>
<p class='message'>Message 8</p>
</div>
當我注入這個網站在父DIV,結果會是這樣
<div class='messages-container'>
<div class='day-messages'>
<span>9 Feb 2012</span>
<p class='message'>Message 1</p>
<p class='message'>Message 2</p>
<p class='message'>Message 3</p>
</div>
<div class='day-messages'>
<span>8 Feb 2012</span>
<p class='message'>Message 4</p>
<p class='message'>Message 5</p>
</div>
<div class='day-messages'>
<span>8 Feb 2012</span>
<p class='message'>Message 6</p>
</div>
<div class='day-messages'>
<span>7 Feb 2012</span>
<p class='message'>Message 7</p>
<p class='message'>Message 8</p>
</div>
</div>
<a href='?page=2&limit=5'>Load older</a>
現在我有兩個組在同一天( 2012年2月8日)
目前我做了一個駭客解決方案來解決這個問題。我檢測是否有重複組,然後合併它們。雖然,我不喜歡這個解決方案。我想知道是否有人想到更好的解決方案。
注:我見過Django Endless Pagination,它似乎處理我的ajax部分,但它不能解決分組問題。
另外我想到了jQuery模板,但是我仍然需要檢測日期組是否重複。
任何幫助將不勝感激,提前致謝。
如果您在AJAX響應中返回HTML,那麼處理jQuery中的重複組似乎是最簡單的解決方案。 – 2012-02-24 12:36:34