如何加载一次请求数据库的django对象并在之后进行搜索
How to load django objects requesting DB once and do searches after
假设我有一个包含所有数据库条目的查询集:
all_db_entries = Entry.objects.all()
然后我想通过调用 get(param=value)
(或任何其他方法)从中获取一些特定对象。
问题是,在 documentation 的 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
将获取一次查询集。
假设我有一个包含所有数据库条目的查询集:
all_db_entries = Entry.objects.all()
然后我想通过调用 get(param=value)
(或任何其他方法)从中获取一些特定对象。
问题是,在 documentation 的 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
将获取一次查询集。