Как загрузить django объекты, запрашивающие БД один раз, и выполнить поиск после - PullRequest
0 голосов
/ 09 апреля 2020

Предположим, у меня есть QuerySet для всех записей в БД:

all_db_entries = Entry.objects.all()

И затем я хочу получить от него некоторые конкретные c объекты, вызвав get(param=value) (или любой другой метод). Проблема заключается в том, что в документации методов QuerySet сказано: "These methods do not use a cache. Rather, they query the database each time they’re called.".

Но я хочу достичь, чтобы загрузить все данные один раз (например, Select *), и только после того, как сделать некоторые поиски по ним. Я не хочу открывать соединение с БД каждый раз, когда звоню get(), чтобы избежать большой нагрузки на него.

1 Ответ

0 голосов
/ 09 апреля 2020

Вы можете использовать values для преобразования вашего результирующего набора запросов в обычный список python, который вы можете использовать для поиска и т. Д. c., Например:

list(MyModel.objects.values('pk', 'field'))

values будет получить набор запросов один раз.

...