如何列出Django模板缓存键?

时间:2018-11-17 18:34:05

标签: 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 %}

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

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

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

0 个答案:

没有答案