Django分頁器Paginator資料重複問題

2021-09-20 09:36:03 字數 1080 閱讀 9505

上週新增了乙個新的爬蟲目標,前後端做好list頁,詳情頁,over

沒想到本週管理爬蟲資訊的小哥反映說,每頁都會出現一條重複的資料,這條重複的資料永遠佔據著每頁的最後一條

設想了幾個可能導致該問題的原因

使用html模板時誤加了一行**,如posts.last之類

分頁器使用方法錯誤

經排查發現:

html模板語言使用完全正確

分頁器使用完全正確

而且當時很詭異的一件事是:線下跑的資料不重複,線上的重複,真是匪夷所思

於是先手動操作刪除了線上那條重複的資料,結果發現仍然有新的資料替代了原來重複的那條。而且重複的現象只出現在前15頁,後面幾頁並不會出現,這就更匪夷所思了

最後在staskoverflow搜尋關鍵字django paginator repeat data的時候發現了類似的問題:

猜想應該是querysetorder_by導致的

在**中發現,原來獲取資料集時order_by對應的字段為空,講其替換為乙個一定存在的字段後成功解決該問題

# model.py

score = models.floatfield("搜尋評分", default=0.0, blank=true, null=true)

update_time = models.datetimefield("更新時間", auto_now=true)

# views.py

# 導致分頁資料出現重複的**

items = codeitems.objects.filter(repos='sourceforge').order_by('-score')

# 避免分頁資料出現重複的**

update_time = models.datetimefield("更新時間", auto_now=true)

這個問題在11年就出現過,現在已經是19年了,依然會出現該問題,究其原因:

order_by本身的弱檢查導致

使用者在使用order_by的時候,應呼叫至少乙個非null的字段

SQLAlchemy新增分頁 paginate

from sqlalchemy.orm import query class pagination object 分頁物件 def init self,query,page,per page,total,items self.query query self.page page self.per p...

Django元件 分頁器

批量匯入資料 booklist for i in range 100 book.objects.bulk create booklist 分頁器的使用 book list book.objects.all paginator paginator book list,10 print count pa...

Django元件 分頁器

批量匯入資料 booklist for i in range 100 book.objects.bulk create booklist 分頁器的使用 book list book.objects.all paginator paginator book list,10 print count pa...