如何列出 Django 模板缓存键?

Kal*_*ien 5 django caching django-cache

我正在寻找一种在使用 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 %}
Run Code Online (Sandbox Code Playgroud)

在这里,有contact_page_headercontact_page_content。这两个都有自己的.djcache文件。

我想在保存模型时(动态地)检查这些键,并删除contact_page_header.djcachecontact_page_content.djcache. 我知道我可以专门用cache.delete('contact_page_header')和来做到这一点cache.delete('contact_page_content')

我想找到一种方法从模板中动态查找缓存片段并删除它们而不删除所有其他模板缓存,并且没有特别指定要删除的缓存文件,因为模板缓存可能会更改,我想使用 re - 在其他视图中可用的代码。理想情况下,我想编写一个 Mixin,在保存时,它将检查来自任何模型(及其相应模板)的缓存片段并删除这些缓存文件,而不是为每个 Django 视图编写自定义方法。