django 告诉一个查询集它的结果是什么,这样它就不必查询数据库

ymdaylpp  于 2023-10-21  发布在  Go
关注(0)|答案(1)|浏览(116)

(免责声明:我不确定这是否只是一个愚蠢的问题)
在我的流程中,我已经从数据库中获得了所需的对象,但我需要它以Queryset的形式出现,以便以后使用(在注解上使用,并且使用用于多个元素的相同代码)。
现在我只是再次构建查询:

queryset = MyModel.objects.filter(id=object.id)

但是我想知道是否有可能“提示”查询集来判断哪个是它的结果。例如:

queryset.result = object

也许应该重新审视流程,我根本不应该这样做,但在进行任何重构之前,我想知道这样的事情是否可能。
谢谢你,谢谢!

bttbmeg0

bttbmeg01#

严格地说,你可以把这些添加到结果缓存中是的:

queryset = MyModel.objects.filter(id=object.id)
queryset._result_cache = [object]

如果你枚举查询集,它将不会进行查询。如果您进一步过滤查询集,您将在不使用 * 该高速缓存的情况下构造QuerySet s *,因此queryset.filter(active=True)(如果枚举)将进行查询。

注意:请不要 * 命名变量object,它会覆盖对**object**内置函数[Python-doc]的引用。例如item

相关问题