Skip to content

Commit 8a8c847

Browse files
Invalidate cache
1 parent 20e496e commit 8a8c847

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/country_workspace/cache/middleware.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,18 @@ def _should_update_cache(self, request: HttpRequest, response: HttpResponse) ->
4040

4141
def _invalidate_cache(self, request: HttpRequest) -> None:
4242
cache_key = self.manager.build_key_from_request(request, "view", getattr(request.user, "pk", ""))
43-
if cache_key:
44-
self.manager.cache.delete(cache_key)
43+
if request.method == "POST":
44+
for verb in ("add", "change", "delete"):
45+
if request.path.endswith(f"/{verb}/"):
46+
if verb == "add":
47+
sep = verb
48+
else:
49+
pk = request.resolver_match.kwargs.get("object_id", "")
50+
sep = f"{pk}{verb}"
51+
# last occurrence
52+
cache_key = "".join(cache_key.rsplit(sep, 1))
53+
break
54+
self.manager.cache.delete(cache_key)
4555

4656
def _update_cache(self, request: HttpRequest, response: HttpResponse) -> None:
4757
timeout = self.page_timeout

0 commit comments

Comments
 (0)