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') никогда не печатается. Я даже поставил отладчик, чтобы посмотреть, что происходит, но похоже, что кэш пуст

Что я делаю не так?

Вернуться на верх