我正在寻找一种轻松过滤来自Model对象集合而无需每次都敲击数据库的方法。根据定义,QuerySets是懒惰的,并且总是会碰到数据库。所以我想知道是否有什么可以做到这一点。如果没有,也许它是一个很好的图书馆。在Django中对象集合的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中现有的库或功能可以解决这个问题?提前致谢!
差不多,但结果仍然是这将创下每过滤数据库或得到调用QS。 – thomallen 2013-03-21 19:56:37