diff --git a/frappe/__init__.py b/frappe/__init__.py index 1c528606e5..779518daa4 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -1045,7 +1045,7 @@ def publish_realtime(*args, **kwargs): return frappe.async.publish_realtime(*args, **kwargs) -def local_cache(namespace, key, generator): +def local_cache(namespace, key, generator, regenerate_if_none=False): """A key value store for caching within a request :param namespace: frappe.local.cache[namespace] @@ -1059,4 +1059,8 @@ def local_cache(namespace, key, generator): if key not in local.cache[namespace]: local.cache[namespace][key] = generator() + elif local.cache[namespace][key]==None and regenerate_if_none: + # if key exists but the previous result was None + local.cache[namespace][key] = generator() + return local.cache[namespace][key]