我正在从Django缓存中删除单个路径,如下所示:
from models import Graph
from django.http import HttpRequest
from django.utils.cache import get_cache_key
from django.db.models.signals import post_save
from django.core.cache import cache
def expire_page(path):
request = HttpRequest()
request.path = path
key = get_cache_key(request)
if cache.has_key(key):
cache.delete(key)
def invalidate_cache(sender, instance, **kwargs):
expire_page(instance.get_absolute_url())
post_save.connect(invalidate_cache, sender = Graph)
Run Code Online (Sandbox Code Playgroud)
这有效 - 但有没有办法递归删除?我的路径看起来像这样:
Run Code Online (Sandbox Code Playgroud)/graph/123 /graph/123/2009-08-01/2009-10-21
只要保存了ID为"123"的图形,就需要使两个路径的缓存无效.可以这样做吗?