问题描述
上周添加了一个新的爬虫目标,前后端做好list页,详情页,over
没想到本周管理爬虫信息的小哥反映说,每页都会出现一条重复的数据,这条重复的数据永远占据着每页的最后一条
debug
设想了几个可能导致该问题的原因
- 使用html模板时误加了一行代码,如posts.last之类
- 分页器使用方法错误
排查
经排查发现:
- html模板语言使用完全正确
- 分页器使用完全正确
而且当时很诡异的一件事是:线下跑的数据不重复,线上的重复,真是匪夷所思
于是先手动操作删除了线上那条重复的数据,结果发现仍然有新的数据替代了原来重复的那条。而且重复的现象只出现在前15页,后面几页并不会出现,这就更匪夷所思了
最后在staskoverflow搜索关键字django paginator repeat data
的时候发现了类似的问题:
https://stackoverflow.com/questions/5044464/django-pagination-is-repeating-results
猜想应该是queryset
的order_by
导致的
在代码中发现,原来获取数据集时order_by
对应的字段为空,讲其替换为一个一定存在的字段后成功解