This commit is contained in:
Herculino Trotta
2024-10-13 15:33:47 -03:00
parent da85c28499
commit ff302e8377
2 changed files with 14 additions and 1 deletions

View File

@@ -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

View File

@@ -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