内容简介:翻译自:https://stackoverflow.com/questions/21385248/what-is-query-clone-queryset-clone-for-in-django
我看到clone()在 django
代码中被广泛使用
queryset.query.clone() queryset.clone()
它是什么,我应该模仿我的queryset或manager方法中的行为?
clone()有两个主要原因:
>它允许链接.当您将 chain 个查询集放在一起时(例如,多个filter()调用),每次可以修改时,都需要查询集的新副本.
>它允许您避免过时的缓存结果.由于查询集 cache 在评估它们时的结果,如果要确保再次访问数据库,则需要克隆查询集.
如果您知道自己在做什么,可以使用它,但请注意,它不是公共API.在这个有趣的 Django developers thread 中,开发人员谈论clone()是否应该公开.他们决定反对,部分原因是:
The biggest problem with public .clone()
method is that the private ._clone()
doesn’t do just cloning. There are some cases where cloning also changes how the QuerySet behaves.
翻译自:https://stackoverflow.com/questions/21385248/what-is-query-clone-queryset-clone-for-in-django
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。