Как перечислить ключи Django Template Cache? - PullRequest
0 голосов
/ 17 ноября 2018

Я ищу способ перечисления ключей кэша из определенного файла шаблона при использовании кэширования шаблонов Django (Django 2+; Python 3.5+).Например:

{% load cache %}

{% block header %}
  {% cache 600 contact_page_header %}
    Contact page header, this will create a cache file.
  {% endcache %}
{% endblock header %}

{% block content %}
  <!-- HTML stuff here -->

  {% cache 600 contact_page_content %} {# Fragment #}
    Contact page header, this will create a cache file.
  {% endcache %}

  <!-- More HTML stuff -->
{% endblock content %}

Здесь есть contact_page_header и contact_page_content.Оба из них будут иметь свой собственный файл .djcache.

Я хочу проверять эти ключи (динамически) при каждом сохранении модели и удалять contact_page_header.djcache и contact_page_content.djcache.Я знаю, что могу сделать это специально с cache.delete('contact_page_header') и cache.delete('contact_page_content').

Я бы хотел найти способ динамически находить фрагменты кэша из шаблона и удалять их без удаления всего другого кэша шаблона и без указания, какие именно файлы кэша следует удалить, посколькукэш шаблона может измениться, и я хочу использовать повторно используемый код в других представлениях.В идеале я хотел бы написать Mixin, который при сохранении будет проверять фрагменты кэша из любой модели (и соответствующего шаблона) и удалять только эти файлы кэша вместо написания собственного метода для каждого Django.Посмотреть.

...