From f3a1bb7110e746d58dbeb3f6cf1efbcd8e5ee5aa Mon Sep 17 00:00:00 2001 From: Egor fureunoir Gorbunov Date: Wed, 12 Nov 2025 22:05:15 +0300 Subject: [PATCH] Features: 1) Add new `DEBUG_DATABASE` setting for database logging control; 2) Enable conditional logging based on `DEBUG_DATABASE` for `django.db` logger; Fixes: 1) Correct type casting of `uuid` in payment transaction retrieval; Extra: 1) Minor cleanup in logging configuration imports; --- engine/payments/views.py | 2 +- evibes/settings/base.py | 1 + evibes/settings/logconfig.py | 7 ++++++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/engine/payments/views.py b/engine/payments/views.py index 1c385582..8c6a8771 100644 --- a/engine/payments/views.py +++ b/engine/payments/views.py @@ -72,7 +72,7 @@ class CallbackAPIView(APIView): def post(self, request: Request, *args: list[Any], **kwargs: dict[Any, Any]) -> Response: try: - transaction = Transaction.objects.get(uuid=kwargs.get("uuid", "")) + transaction = Transaction.objects.get(uuid=str(kwargs.get("uuid"))) if not transaction.gateway: raise UnknownGatewayError() gateway = transaction.gateway.get_integration_class_object() diff --git a/evibes/settings/base.py b/evibes/settings/base.py index 6a4c4819..3e01e454 100644 --- a/evibes/settings/base.py +++ b/evibes/settings/base.py @@ -14,6 +14,7 @@ INITIALIZED = (BASE_DIR / ".initialized").exists() SECRET_KEY = getenv("SECRET_KEY", "SUPER_SECRET_KEY") DEBUG = bool(int(getenv("DEBUG", "1"))) +DEBUG_DATABASE = bool(int(getenv("DEBUG_DATABASE", "1"))) BASE_DOMAIN: str = getenv("EVIBES_BASE_DOMAIN", "localhost") STOREFRONT_DOMAIN: str = getenv("EVIBES_STOREFRONT_DOMAIN", "localhost") diff --git a/evibes/settings/logconfig.py b/evibes/settings/logconfig.py index bb6b5d97..c6a837ff 100644 --- a/evibes/settings/logconfig.py +++ b/evibes/settings/logconfig.py @@ -1,6 +1,6 @@ import logging -from evibes.settings.base import DEBUG +from evibes.settings.base import DEBUG, DEBUG_DATABASE class SkipVariableDoesNotExistFilter(logging.Filter): @@ -63,6 +63,11 @@ LOGGING = { "level": "DEBUG" if DEBUG else "INFO", "propagate": True, }, + "django.db": { + "handlers": ["console"], + "level": "DEBUG" if DEBUG_DATABASE else "WARNING", + "propagate": True, + }, "django.template": { "handlers": ["console"], "level": "DEBUG" if DEBUG else "ERROR",