import json import hashlib from django.core.cache import caches _cache = caches['default'] CACHE_TIMEOUT = 900 def _make_cache_key(prefix, *args, **kwargs): raw = json.dumps({'args': args, 'kwargs': kwargs}, sort_keys=True, default=str) suffix = hashlib.md5(raw.encode('utf-8')).hexdigest() return f'currency_{prefix}_{suffix}' def get_cached_data(prefix, *args, **kwargs): cache_key = _make_cache_key(prefix, *args, **kwargs) return _cache.get(cache_key) def set_cached_data(prefix, data, *args, timeout=CACHE_TIMEOUT, **kwargs): cache_key = _make_cache_key(prefix, *args, **kwargs) _cache.set(cache_key, data, timeout=timeout) def delete_cached_data(prefix, *args, **kwargs): cache_key = _make_cache_key(prefix, *args, **kwargs) _cache.delete(cache_key)