我可以从Python shell中执行此操作:
from django.core.cache import *
cache.clear()
但是当我从signals.py
from django.core.cache import *
....
....
def clear_cache(sender, instance, **kwargs):
if sender.__name__ in ['Foo', 'Bar']:
cache.clear()
我明白了:
NotImplementedError at /edit/bar/
subclasses of BaseCache must provide a clear() method
我使用redis,但我遇到了与memcached相同的问题。
就错误而言,我可以看到cache = <django.core.cache.DefaultCacheProxy object at 0x10e566e90>
我一定是做了可怕的错事?
编辑:
这是一条线索。
在signals.py
内,cache.clear
是:
<bound method CacheStatTracker.clear of <CacheStatTracker for <redis_cache.cache.RedisCache object at 0x10a39dbd0>>>
来自控制台:
<bound method RedisCache.clear of <redis_cache.cache.RedisCache object at 0x10bf1e0d0>>
到底是什么?
答案 0 :(得分:0)
您没有使用*
导入所有内容,而是尝试过:
from django.core.cache import cache
缓存文档:https://docs.djangoproject.com/en/1.8/topics/cache/#accessing-the-cache