Добавлен класс RequestManager

This commit is contained in:
2026-07-16 19:53:53 +03:00
parent 63537f24a0
commit 3d1e6b47bd
10 changed files with 674 additions and 62 deletions

View File

@@ -7,7 +7,6 @@
"""
Описание класса CoreViewSet
"""
from typing import Any
from typing import Type
from uuid import UUID
@@ -59,7 +58,7 @@ class CoreViewSet(ViewSet):
if default is not None:
return default
raise AttributeError(f"{self.__class__.__name__} must define 'serializer' attribute")
raise ImproperlyConfigured(f"{self.__class__.__name__} must define 'serializer' attribute")
@classmethod
def _process_pk_param(cls, **kwargs: Any) -> UUID | None:
@@ -134,6 +133,19 @@ class CoreViewSet(ViewSet):
return self._get_request_method() == HttpMethod.PATCH
def _get_request_id(self) -> UUID:
"""
Возвращает идентификатор запроса
:return: Идентификатор запроса
"""
try:
request_id = self.request.headers.get("X-Request-ID", None)
return UUID(request_id)
except ValueError:
return UUID()
def _get_request_method(self) -> str:
"""
Возвращает имя метода HTTP протокола запроса