Django 高性能方式,按顺序获取大量(我说的是巨大的)ID 列表的查询集



与以下风格几乎相同:Django以特定顺序从id数组中获取QuerySet。我试过 https://stackoverflow.com/a/37648265/4810639

但是我的 id 列表很大(> 50000(,qs = Foo.objects.filter(id__in=id_list)qs = qs.order_by(preserved)都在压力下屈服。

注意:由于我正在覆盖特定的 django 方法,我需要一个查询集,因此任何返回列表的内容都不起作用。

编辑:为了回应评论,我特别覆盖了管理员中的get_search_results()。我的搜索引擎返回与查询匹配的模型id。但是get_search_results()需要返回一个查询集。因此,大量的id

我通过创建一个FakeQueryset类来实现这一点,该类具有足够常规查询集的功能,它能够像一个查询集一样运行。然后,当我需要显示它时,我会将其交给自定义分页器,该分页器一次只能从数据库中提取几id秒。鸭子打字赢了!

相关内容

最新更新