Django LocMemCache не кэширует данные
Я настроил свой LocMemCache в файле settings.py:
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'TIMEOUT': None,
},
Затем я построил декоратор функций:
from django.core.cache import cache
def cache_function(func):
def cache_result(*args, **kwargs):
cache_key = '{},{}'.format(
func.__name__,
hashlib.sha256('{},{},{}'.format(func.__name__, args, kwargs).encode()).hexdigest(),
)
try:
result = cache.get(cache_key)
if result is not None:
print('function is cached')
return result
result = func(*args, **kwargs)
timeout = 60
cache.set(cache_key, result, timeout)
return result
except Exception as exc:
print('CACHE ERROR:')
print(exc)
return func(*args, **kwargs)
return cache_result
Тогда у меня есть моя функция:
@cache_function
def function_to_test():
return 'this is a test value'
Однако, похоже, что кэш никогда не используется, независимо от того, сколько раз я вызываю функцию. Я знаю это, потому что мой оператор print ('function is cached') никогда не печатается. Я даже поставил отладчик, чтобы посмотреть, что происходит, но похоже, что кэш пуст
Что я делаю не так?