1

有没有办法在不创建新的 Paginator 的情况下更改 Paginator object_list?

我想订购我传递给 Paginator 的查询集。

现在我正在基于有序查询集创建新的分页器。

谢谢

4

1 回答 1

0

好的,自从这个问题发布这么多年之后,我把它放在了我的谷歌搜索命中列表的顶部。我刚刚做了一个简单的测试,证明可以将 paginator.object_list(以 Django QuerySet 开头)更改为字典列表,并且可以在模板中无缝运行。正如文档所述,object_list 可以是:“列表、元组、QuerySet 或其他具有 count() 或len () 方法的可切片对象。”

因此,可以通过这种方式重新排序列表,或者,正如我需要做的那样,可以从第二个数据库向字典中添加更多字段。您确实需要将替换列表的长度保持为与原始 QuerySet 相同的长度,以便使用 Paginator 对象的所有其他功能。使用 QuerySet 方法 values() 可以让您非常轻松地保留所有字段(感谢@David Wolever提供此提示

这是一些代码:

new_object_list = list(records_from_paginator.object_list.values())
reordered_or_changed_object_list = reorder_or_change_object_list(new_object_list)
records_from_paginator.object_list = reordered_or_changed_object_list
于 2019-10-28T07:57:18.480 回答