1- from re import sub
21from django .conf import settings
32from django .middleware .cache import FetchFromCacheMiddleware , UpdateCacheMiddleware
4- from django .utils .cache import get_cache_key
53from rest_framework .views import APIView
64
75
@@ -10,20 +8,19 @@ def get_cache_key_prefix(request):
108 drf_request = APIView ().initialize_request (request )
119
1210 if drf_request .user .is_anonymous :
13- user_id = 'anonymous'
14- else :
15- user_id = drf_request .user .id
16- if not cache_prefix :
17- return f'user_{ user_id } '
18-
19- return f'{ cache_prefix } _user_{ user_id } '
11+ return f'{ cache_prefix } _anonymous'
12+
2013
2114class UpdateCacheForUserMiddleware (UpdateCacheMiddleware ):
2215 def process_response (self , request , response ):
23- self .key_prefix = get_cache_key_prefix (request )
24- return super ().process_response (request , response )
16+ if key_prefix := get_cache_key_prefix (request ):
17+ self .key_prefix = key_prefix
18+ return super ().process_response (request , response )
19+ return response
20+
2521
2622class FetchFromCacheForUserMiddleware (FetchFromCacheMiddleware ):
2723 def process_request (self , request ):
28- self .key_prefix = get_cache_key_prefix (request )
29- return super ().process_request (request )
24+ if key_prefix := get_cache_key_prefix (request ):
25+ self .key_prefix = key_prefix
26+ return super ().process_request (request )
0 commit comments