我正在寻找一种方法来轻松地从模型对象的集合中过滤,而无需每次都访问数据库。根据定义,QuerySet 是惰性的,并且总是会访问数据库。所以我想知道是否有任何东西可以做到这一点。如果没有,也许它是一个很好的创建库。
例如:
all_records = object_set(Record.objects.filter(company=user.company))
object_set
是一个假设的函数,它将收集 QuerySet 中的所有对象作为静态数据。结果将是一个“对象管理器”实例,该实例可以运行过滤器,类似于 QuerySet 过滤器。这在存储基于多维数据列表中的数据创建、更新和删除对象时特别有用。
for row in data:
for col in row:
# this would not hit the DB. Only filter within the "object_set" in memory.
all_records.filter(date=col.date, type=col.type, creator=col.user)
我意识到我可能试图以错误的方式解决这个问题,但无论如何,我认为这将是 Django 中的一个很好的工具。有谁知道 Django 中现有的库或功能可以解决这个问题?提前致谢!