From ff302e83778fc0464739d75ab508d441d72f7e45 Mon Sep 17 00:00:00 2001 From: Herculino Trotta Date: Sun, 13 Oct 2024 15:33:47 -0300 Subject: [PATCH] test --- app/WYGIWYH/settings.py | 6 +++++- app/apps/common/middleware/localization.py | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/WYGIWYH/settings.py b/app/WYGIWYH/settings.py index c06fdd9..7900ba1 100644 --- a/app/WYGIWYH/settings.py +++ b/app/WYGIWYH/settings.py @@ -65,7 +65,7 @@ INSTALLED_APPS = [ "apps.common.apps.CommonConfig", "apps.net_worth.apps.NetWorthConfig", "apps.api.apps.ApiConfig", - # "cachalot", + "cachalot", "rest_framework", "drf_spectacular", ] @@ -258,3 +258,7 @@ SPECTACULAR_SETTINGS = { "SERVE_INCLUDE_SCHEMA": False, # OTHER SETTINGS } + +# CACHALOT_CACHE_RANDOM = True +# CACHALOT_QUERY_KEYGEN = "cachalot.utils.get_query_cache_key" +# CACHALOT_TIMEOUT = 60 * 60 * 24 # 24 hours, or adjust as needed diff --git a/app/apps/common/middleware/localization.py b/app/apps/common/middleware/localization.py index a4fb76f..9dc660d 100644 --- a/app/apps/common/middleware/localization.py +++ b/app/apps/common/middleware/localization.py @@ -2,6 +2,7 @@ import zoneinfo from django.utils import timezone, translation from django.utils.cache import patch_vary_headers from django.utils.translation import activate +from cachalot.api import invalidate class LocalizationMiddleware: @@ -32,6 +33,14 @@ class LocalizationMiddleware: else: language_to_activate = translation.get_language_from_request(request) + # Check if timezone or language has changed + if ( + getattr(request, "timezone", None) != timezone_to_activate + or getattr(request, "language", None) != language_to_activate + ): + # Invalidate cachalot cache + invalidate() + # Apply timezone and language to the request request.timezone = timezone_to_activate request.language = language_to_activate