This commit is contained in:
Viner Abubakirov
2025-12-10 14:18:04 +05:00
parent 9a16f9c9ca
commit 36fbd46909
28 changed files with 819 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
import threading
from django.utils.deprecation import MiddlewareMixin
_thread_local = threading.local()
def get_current_request():
"""Retrieve the current request stored in thread-local storage."""
return getattr(_thread_local, "request", None)
def get_current_user():
"""Retrieve the user from the current request."""
request = get_current_request()
if request:
return getattr(request, "user", None)
return None
class CurrentRequestMiddleware(MiddlewareMixin):
"""Middleware to store the current request in thread-local storage.
Args:
MiddlewareMixin : Base class for Django middleware.
"""
def process_request(self, request):
_thread_local.request = request
def process_response(self, request, response):
if hasattr(_thread_local, "request"):
del _thread_local.request
return response