Django缓存NotImplementedError

时间:2015-04-16 20:55:40

标签: python django caching django-debug-toolbar

我可以从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>>

到底是什么?

1 个答案:

答案 0 :(得分:0)

您没有使用*导入所有内容,而是尝试过:

from django.core.cache import cache

缓存文档:https://docs.djangoproject.com/en/1.8/topics/cache/#accessing-the-cache