Django分页器Paginator数据重复问题

本文探讨了Django分页器Paginator在实际使用中出现数据重复的问题。问题表现为每页最后一条数据重复,且仅在前15页出现。通过排查和查阅资料,发现原因是获取数据集时使用的字段为空,替换为非空字段后问题得到解决。提醒开发者在使用Django分页器时注意order_by字段的正确设置。
摘要由CSDN通过智能技术生成

问题描述

上周添加了一个新的爬虫目标,前后端做好list页,详情页,over
没想到本周管理爬虫信息的小哥反映说,每页都会出现一条重复的数据,这条重复的数据永远占据着每页的最后一条

debug

设想了几个可能导致该问题的原因

  1. 使用html模板时误加了一行代码,如posts.last之类
  2. 分页器使用方法错误

排查

经排查发现:

  1. html模板语言使用完全正确
  2. 分页器使用完全正确

而且当时很诡异的一件事是:线下跑的数据不重复,线上的重复,真是匪夷所思
于是先手动操作删除了线上那条重复的数据,结果发现仍然有新的数据替代了原来重复的那条。而且重复的现象只出现在前15页,后面几页并不会出现,这就更匪夷所思了

最后在staskoverflow搜索关键字django paginator repeat data的时候发现了类似的问题:
https://stackoverflow.com/questions/5044464/django-pagination-is-repeating-results
猜想应该是querysetorder_by导致的

在代码中发现,原来获取数据集时order_by对应的字段为空,讲其替换为一个一定存在的字段后成功解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值