Кэширование фрагментов шаблона Django
Если необходим еще более точный контроль над кэшированием, можно воспользоваться тегом cache и с его помощью организовать кэширование фрагментов шаблона. Чтобы открыть шаблону доступ к этому тегу, поместите в начале шаблона директиву {% load cache %}.
Шаблонный тег {% cache %} кэширует содержимое блока на указанное время. Он принимает по меньшей мере два аргумента: время хранения в кэше в секундах и имя фрагмента. Например:
{% load cache %} {% cache 500 sidebar %} .. боковая панель .. {% endcache %}
Иногда бывает необходимо кэшировать несколько вариантов фрагмента в зависимости от динамических данных внутри него. Например, в предыдущем примере содержимое боковой панели может отличаться для каждого посетителя сайта. В этом случае нужно передать шаблонному тегу {% cache %} дополнительные аргументы, уникально идентифицирующие фрагмент:
{% load cache %>
{% cache 500 sidebar request.user.username %}
.. боковая панель для аутентифицированного пользователя .. {% endcache %}
Ничто не мешает задавать несколько аргументов для идентификации фрагмента. Для этого нужно лишь передать тегу {% cache %} столько аргументов, сколько необходимо.
Время хранения в кэше может быть шаблонной переменной; главное, чтобы ее значением было целое число. Так, если допустить, что шаблонная переменная my_timeout имеет значение 600, то следующие два примера будут эквивалентны:
{% cache 600 sidebar %} … {% endcache %} {% cache my_timeout sidebar %} … {% endcache %}
Такой подход позволит избежать повторения в шаблонах. Срок хранения можно определить в одном месте, в некоторой переменной, а затем передавать эту переменную разным шаблонам.
Источник: Головатый А., Каплан-Мосс Дж. Django. Подробное руководство, 2-е издание. - Пер. с англ. - СПб.: Символ- Плюс, 2010. - 560 е., ил.
Похожие посты:
- Репутация на примере «рейтинга школ» (0)
- БУДУЩЕЕ ПОИСКОВОЙ СИСТЕМЫ GOOGLE (0)
- СЛОВАРЬ ПОИСКОВЫЕ СИСТЕМЫ (0)
- Что такое селекторы и как их правильно использовать (0)
- Справочник по API доступа к базе данных Django - ЧАСТЬ 3 (0)
- Встроенные шаблонные теги и фильтры Django (0)
- Справочник по встроенным фильтрам add Django (0)