我正在寻找一种使用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,在保存时将检查任何模型(及其相应模板)中的缓存片段,并删除 just 缓存文件,而不是为每个实例编写自定义方法Django视图。