2011-01-21 4 views
0

У меня есть модель категорий, которую я использую более одного раза на странице. Поскольку я получаю все категории в начале, я хочу сократить запросы к базе данных, получив одни и те же данные более одного раза.Django - Сохранение результатов запроса

Поскольку первоначальный запрос получает ВСЕ категории, существует ли способ сохранить эту информацию в модели, так что, когда я снова ссылаюсь на данные позже, мне не нужно снова удалять базу данных?

Возможно, какой-то ассоциативный массив или dict, в котором хранятся категории?

Любая помощь будет оценена по достоинству.

ответ

1

Запросы Django: lazy и cached, поэтому база данных не попадает до тех пор, пока запрос не будет доступен. Вы также должны посмотреть на how queries are evaluated.

Если вы могли бы опубликовать некоторый код, мы могли бы помочь вам найти оптимальный способ для написания запросов.

+0

Извините, у меня нет никакого кода, это скорее общий вопрос. Если вы представляете себе блог, вы можете захотеть иметь категории, указанные справа. Но вы также должны показывать отдельные категории для каждой записи в блоге слева. Поскольку мы уже попали в базу данных, получив список категорий для правой стороны страницы, я бы не захотел сделать это снова для отдельных записей в блоге. – Hanpan

+0

@ Hanpan - но это два совершенно разных запроса, вам придется спросить их обоим, поэтому я не уверен, как поможет кеш. –

+0

Удар по БД дважды не является проблемой. Удар по нему для каждого блога в большом списке может быть. Вам, вероятно, придется много работать («тяжело», я имею в виду «глупо»), чтобы сделать Django. – Spacedman

Смежные вопросы