Django 3.2.10 Per-site Cache не обновляется после изменения данных
Мой порядок промежуточного ПО выглядит следующим образом,
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.middleware.cache.UpdateCacheMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
'UsersUI.middleware.MultitenantMiddleware', #This does not change anything except setting a variable called current tenant from request.user and just returns the self.get_response(request) from __call__ method
]
Мои настройки кэша следующие
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'my_cache_table',
}
}
CACHE_MIDDLEWARE_SECONDS = 1000000
CACHE_MIDDLEWARE_KEY_PREFIX = ''
Да, я также создал таблицу кэша. Даже если я делаю жесткую перезагрузку и очищаю кэш браузера, данные не обновляются. Мне нужно очистить всю таблицу кэша, чтобы изменения отразились в кэше. Я не знаю, что пошло не так. Я просто использую кэш для каждого сайта.
Также, не знаю, имеет ли это значение, я низкоуровнево кэшировал значение разрешения следующим образом
from django.core.cache import cache
class CheckActiveSubscription(permissions.BasePermission):
message = "You don't have an active subscription. Please click here {link} to subscribe."
def has_permission(self, request, view):
cache_name = str(request.user.firm.firm_code)+str("permission_cache")
cache_value = cache.get(cache_name)
if cache_value:
# not None and It is True
return cache_value
else:
customer = request.user.firm if not request.user.is_anonymous else None
if customer :
print("Customer Exists")
active_plan = customer.check_permission_stripe_MetaProducts
if active_plan and active_plan in view.allowed_subscriptions:
cache.set(cache_name, True, get_expiring_seconds())#expires at 4 am everyday
return True
return False
Я помню, что кэш обновляется даже после изменения данных, теперь я не знаю, что пошло не так. Может кто-нибудь подсказать мне?