2016-11-18 49 views
0

我已經完成查詢內容並給出next_url,previous_url等。問題是,查詢基於動態分類(就像Facebook新聞源)。Django爲動態訂單處理分頁

如何處理以下情況?

用戶請求頁面1,請參閱文章10242.用戶尚未請求第2頁。由於排序算法,文章10242可能會移動到第2頁。如果是這樣,當用戶請求第2頁時,用戶將看到重複的文章。

我不能簡單地刪除應用程序上的重複帖子。重複問題可以,但請說,當用戶請求頁面1,文章10333在頁面2中,但是當用戶請求頁面2,文章10333移動到頁面1時。是否有推薦的支持動態排序的分頁機制?

+0

你有排序算法上的控制? – Aditya

+0

您可以爲看過文章的人創建一個新模型。這樣你可以.order_by(' - has_seen')或類似的東西。 –

+0

您也可以在頁面2查詢中包含第2頁查詢.exclude()第1頁文章。 –

回答

0

幾點建議:

  1. 更改算法舉行dirty參數。任何時候有人喜歡它或做出改變,它就會變成dirty,並且可以改變排序算法的因子。我使用了幾個搜索數據庫(elasticsearch和algolia),它允許我根據各種參數自定義排序順序。隨着這種變化,你需要一個用戶所看到的內容和可以查看的內容,並將其用作過濾器。
    Here是一個很好的論文,其中facebook討論了它的一些方法。

  2. 更簡單的方法是保存用戶已查看內容的信息,以及用戶何時試圖獲取信息過濾/降級文章。保持每個用戶的狀態將處理一篇文章可能被一個人看到而另一個人看不到的問題。
    我個人比較喜歡NoSQL數據庫或類似的Redis/memcached的這種狀態信息

+0

謝謝。讓我消化你的建議。 –