如何加载一次请求DB的django对象,然后进行搜索



假设我有一个所有数据库条目的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将获取查询集一次。

最新更新