From dc463ab229645bbf5d0ec8375861bfe6e46172e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jani=20Moln=C3=A1r?= <128060390+FormJani@users.noreply.github.com> Date: Wed, 13 Nov 2024 13:55:14 +0100 Subject: [PATCH] Fix memcached return default on falsy values When a falsy value is returned from cache via memcached backend, it returns None (the default) instead, of the cached value. This is the same issue as with the Redis backend, which was fixed here: https://github.com/korfuri/django-prometheus/commit/1860549c3f8db1a0175995826404561f760369e2 --- django_prometheus/cache/backends/memcached.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/django_prometheus/cache/backends/memcached.py b/django_prometheus/cache/backends/memcached.py index b3902f47..7150abd5 100644 --- a/django_prometheus/cache/backends/memcached.py +++ b/django_prometheus/cache/backends/memcached.py @@ -13,9 +13,10 @@ def get(self, key, default=None, version=None): cached = super().get(key, default=None, version=version) if cached is not None: django_cache_hits_total.labels(backend="memcached").inc() - else: - django_cache_misses_total.labels(backend="memcached").inc() - return cached or default + return cached + + django_cache_misses_total.labels(backend="memcached").inc() + return default class PyLibMCCache(MemcachedPrometheusCacheMixin, memcached.PyLibMCCache):