Django pagination is repeating results

2020-07-06 20:45发布

I have this weird pagination bug in Django: using object_list as a return of a view, but passing a "paginate_by" argument to it, it's repeating some of the results; Otherwise, if I remove the argument or set as "paginate_by=None", the results are correct.

If using pagination, the quantity of results is maintained at a total, so, because there are repeated results, the last results are left out of the list, so they don't appear in the template.

Any ideas of what might be happening?

Thanks!

2条回答
相关推荐>>
2楼-- · 2020-07-06 21:20

I had this problem also, but found a solution.

The problem was that i sorted the dataset by date. When i had multiple records with the same date, pagination showed wrong records.

What i did was i added another searchfield, id, so that the sortcriteria was unique for every record. And then it worked!

Before:

self.filtered_nesgames = self.filtered_nesgames.order_by('releasedate')

After:

self.filtered_nesgames = self.filtered_nesgames.order_by('releasedate', 'id')

HTH

查看更多
在下西门庆
3楼-- · 2020-07-06 21:33

Aparently there's an open issue about documenting how pagination works with django-filter.

Try following the advice given by the issue submitter, bartTC.

查看更多
登录 后发表回答