假设我有一个所有数据库条目的QuerySet:
all_db_entries = Entry.objects.all()
然后我想通过调用get(param=value)
(或任何其他方法(从中获得一些特定的对象。问题是,在QuerySet方法的文档中,它被称为:"These methods do not use a cache. Rather, they query the database each time they’re called."
。
但我想实现的是一次加载所有数据(就像Select *
一样(,并且只在对它们进行一些搜索之后加载。我不想每次调用get()
时都打开与数据库的连接,以避免其负载过重。
您可以使用values
将生成的查询集转换为普通的python列表,您可以使用该列表进行搜索等,例如:
list(MyModel.objects.values('pk', 'field'))
values
将获取查询集一次。