diff --git a/resources/logs/django.log.2025-08-13 b/resources/logs/django.log.2025-08-13 deleted file mode 100644 index 4bf7194..0000000 --- a/resources/logs/django.log.2025-08-13 +++ /dev/null @@ -1 +0,0 @@ -WARNING 2025-08-13 09:59:06,248 log Forbidden: /api/v1/accounts/permission/list/ diff --git a/resources/logs/django.log.2025-08-14 b/resources/logs/django.log.2025-08-14 deleted file mode 100644 index c2def64..0000000 --- a/resources/logs/django.log.2025-08-14 +++ /dev/null @@ -1 +0,0 @@ -WARNING 2025-08-14 17:13:29,497 log Forbidden: /api/v1/products/folder/create/ diff --git a/resources/logs/django.log.2025-08-16 b/resources/logs/django.log.2025-08-16 deleted file mode 100644 index 0518abd..0000000 --- a/resources/logs/django.log.2025-08-16 +++ /dev/null @@ -1,389 +0,0 @@ -ERROR 2025-08-16 11:23:37,974 log Internal Server Error: /api/v1/products/product/list/ -Traceback (most recent call last): - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 489, in thread_handler - raise exc_info[1] - File "/usr/local/lib/python3.13/site-packages/django/core/handlers/exception.py", line 42, in inner - response = await get_response(request) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 489, in thread_handler - raise exc_info[1] - File "/usr/local/lib/python3.13/site-packages/django/core/handlers/base.py", line 253, in _get_response_async - response = await wrapped_callback( - ^^^^^^^^^^^^^^^^^^^^^^^ - request, *callback_args, **callback_kwargs - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ) - ^ - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 439, in __call__ - ret = await asyncio.shield(exec_coro) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run - result = self.fn(*self.args, **self.kwargs) - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 493, in thread_handler - return func(*args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper - return view_func(request, *args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/django/views/generic/base.py", line 105, in view - return self.dispatch(request, *args, **kwargs) - ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 515, in dispatch - response = self.handle_exception(exc) - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 475, in handle_exception - self.raise_uncaught_exception(exc) - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception - raise exc - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 512, in dispatch - response = handler(request, *args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/rest_framework/generics.py", line 203, in get - return self.list(request, *args, **kwargs) - ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/mixins.py", line 43, in list - return self.get_paginated_response(serializer.data) - ^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/serializers.py", line 797, in data - ret = super().data - ^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/serializers.py", line 251, in data - self._data = self.to_representation(self.instance) - ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/serializers.py", line 716, in to_representation - self.child.to_representation(item) for item in iterable - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/serializers.py", line 540, in to_representation - ret[field.field_name] = field.to_representation(attribute) - ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/fields.py", line 1870, in to_representation - return method(value) - File "/code/core/apps/products/serializers/product.py", line 19, in get_unity - 'id': obj.unity.id, - ^^^^^^^^^^^^ -AttributeError: 'NoneType' object has no attribute 'id' -ERROR 2025-08-16 11:27:58,451 log Internal Server Error: /api/v1/products/product/list/ -Traceback (most recent call last): - File "/usr/local/lib/python3.13/site-packages/django/db/models/options.py", line 683, in get_field - return self.fields_map[field_name] - ~~~~~~~~~~~~~~~^^^^^^^^^^^^ -KeyError: 'name' - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 489, in thread_handler - raise exc_info[1] - File "/usr/local/lib/python3.13/site-packages/django/core/handlers/exception.py", line 42, in inner - response = await get_response(request) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 489, in thread_handler - raise exc_info[1] - File "/usr/local/lib/python3.13/site-packages/django/core/handlers/base.py", line 253, in _get_response_async - response = await wrapped_callback( - ^^^^^^^^^^^^^^^^^^^^^^^ - request, *callback_args, **callback_kwargs - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ) - ^ - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 439, in __call__ - ret = await asyncio.shield(exec_coro) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run - result = self.fn(*self.args, **self.kwargs) - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 493, in thread_handler - return func(*args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper - return view_func(request, *args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/django/views/generic/base.py", line 105, in view - return self.dispatch(request, *args, **kwargs) - ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 515, in dispatch - response = self.handle_exception(exc) - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 475, in handle_exception - self.raise_uncaught_exception(exc) - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception - raise exc - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 512, in dispatch - response = handler(request, *args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/rest_framework/generics.py", line 203, in get - return self.list(request, *args, **kwargs) - ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/mixins.py", line 40, in list - page = self.paginate_queryset(queryset) - File "/usr/local/lib/python3.13/site-packages/rest_framework/generics.py", line 175, in paginate_queryset - return self.paginator.paginate_queryset(queryset, self.request, view=self) - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/pagination.py", line 211, in paginate_queryset - self.page = paginator.page(page_number) - ~~~~~~~~~~~~~~^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/core/paginator.py", line 89, in page - number = self.validate_number(number) - File "/usr/local/lib/python3.13/site-packages/django/core/paginator.py", line 70, in validate_number - if number > self.num_pages: - ^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/utils/functional.py", line 47, in __get__ - res = instance.__dict__[self.name] = self.func(instance) - ~~~~~~~~~^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/core/paginator.py", line 116, in num_pages - if self.count == 0 and not self.allow_empty_first_page: - ^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/utils/functional.py", line 47, in __get__ - res = instance.__dict__[self.name] = self.func(instance) - ~~~~~~~~~^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/core/paginator.py", line 110, in count - return c() - File "/usr/local/lib/python3.13/site-packages/cacheops/query.py", line 271, in count - return cached_as(self)(lambda: self._no_monkey.count(self))() - ~~~~~~~~~^^^^^^ - File "/usr/local/lib/python3.13/site-packages/cacheops/query.py", line 64, in cached_as - qs_keys = [qs._cache_key(prefix=False) for qs in querysets] - ~~~~~~~~~~~~~^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/cacheops/query.py", line 152, in _cache_key - sql, params = self.query.get_compiler(self.db).as_sql() - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 766, in as_sql - extra_select, order_by, group_by = self.pre_sql_setup( - ~~~~~~~~~~~~~~~~~~^ - with_col_aliases=with_col_aliases or bool(combinator), - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ) - ^ - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 85, in pre_sql_setup - self.setup_query(with_col_aliases=with_col_aliases) - ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 74, in setup_query - self.select, self.klass_info, self.annotation_col_map = self.get_select( - ~~~~~~~~~~~~~~~^ - with_col_aliases=with_col_aliases, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ) - ^ - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 252, in get_select - select_mask = self.query.get_select_mask() - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/query.py", line 885, in get_select_mask - return self._get_only_select_mask(opts, mask) - ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/query.py", line 860, in _get_only_select_mask - self._get_only_select_mask( - ~~~~~~~~~~~~~~~~~~~~~~~~~~^ - related_model._meta, field_mask, field_select_mask - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ) - ^ - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/query.py", line 854, in _get_only_select_mask - field = opts.get_field(field_name) - File "/usr/local/lib/python3.13/site-packages/django/db/models/options.py", line 685, in get_field - raise FieldDoesNotExist( - "%s has no field named '%s'" % (self.object_name, field_name) - ) -django.core.exceptions.FieldDoesNotExist: Unity has no field named 'name' -ERROR 2025-08-16 11:27:59,903 log Internal Server Error: /api/v1/products/product/list/ -Traceback (most recent call last): - File "/usr/local/lib/python3.13/site-packages/django/db/models/options.py", line 683, in get_field - return self.fields_map[field_name] - ~~~~~~~~~~~~~~~^^^^^^^^^^^^ -KeyError: 'name' - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 489, in thread_handler - raise exc_info[1] - File "/usr/local/lib/python3.13/site-packages/django/core/handlers/exception.py", line 42, in inner - response = await get_response(request) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 489, in thread_handler - raise exc_info[1] - File "/usr/local/lib/python3.13/site-packages/django/core/handlers/base.py", line 253, in _get_response_async - response = await wrapped_callback( - ^^^^^^^^^^^^^^^^^^^^^^^ - request, *callback_args, **callback_kwargs - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ) - ^ - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 439, in __call__ - ret = await asyncio.shield(exec_coro) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run - result = self.fn(*self.args, **self.kwargs) - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 493, in thread_handler - return func(*args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper - return view_func(request, *args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/django/views/generic/base.py", line 105, in view - return self.dispatch(request, *args, **kwargs) - ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 515, in dispatch - response = self.handle_exception(exc) - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 475, in handle_exception - self.raise_uncaught_exception(exc) - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception - raise exc - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 512, in dispatch - response = handler(request, *args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/rest_framework/generics.py", line 203, in get - return self.list(request, *args, **kwargs) - ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/mixins.py", line 40, in list - page = self.paginate_queryset(queryset) - File "/usr/local/lib/python3.13/site-packages/rest_framework/generics.py", line 175, in paginate_queryset - return self.paginator.paginate_queryset(queryset, self.request, view=self) - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/pagination.py", line 211, in paginate_queryset - self.page = paginator.page(page_number) - ~~~~~~~~~~~~~~^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/core/paginator.py", line 89, in page - number = self.validate_number(number) - File "/usr/local/lib/python3.13/site-packages/django/core/paginator.py", line 70, in validate_number - if number > self.num_pages: - ^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/utils/functional.py", line 47, in __get__ - res = instance.__dict__[self.name] = self.func(instance) - ~~~~~~~~~^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/core/paginator.py", line 116, in num_pages - if self.count == 0 and not self.allow_empty_first_page: - ^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/utils/functional.py", line 47, in __get__ - res = instance.__dict__[self.name] = self.func(instance) - ~~~~~~~~~^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/core/paginator.py", line 110, in count - return c() - File "/usr/local/lib/python3.13/site-packages/cacheops/query.py", line 271, in count - return cached_as(self)(lambda: self._no_monkey.count(self))() - ~~~~~~~~~^^^^^^ - File "/usr/local/lib/python3.13/site-packages/cacheops/query.py", line 64, in cached_as - qs_keys = [qs._cache_key(prefix=False) for qs in querysets] - ~~~~~~~~~~~~~^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/cacheops/query.py", line 152, in _cache_key - sql, params = self.query.get_compiler(self.db).as_sql() - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 766, in as_sql - extra_select, order_by, group_by = self.pre_sql_setup( - ~~~~~~~~~~~~~~~~~~^ - with_col_aliases=with_col_aliases or bool(combinator), - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ) - ^ - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 85, in pre_sql_setup - self.setup_query(with_col_aliases=with_col_aliases) - ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 74, in setup_query - self.select, self.klass_info, self.annotation_col_map = self.get_select( - ~~~~~~~~~~~~~~~^ - with_col_aliases=with_col_aliases, - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ) - ^ - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 252, in get_select - select_mask = self.query.get_select_mask() - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/query.py", line 885, in get_select_mask - return self._get_only_select_mask(opts, mask) - ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/query.py", line 860, in _get_only_select_mask - self._get_only_select_mask( - ~~~~~~~~~~~~~~~~~~~~~~~~~~^ - related_model._meta, field_mask, field_select_mask - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ) - ^ - File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/query.py", line 854, in _get_only_select_mask - field = opts.get_field(field_name) - File "/usr/local/lib/python3.13/site-packages/django/db/models/options.py", line 685, in get_field - raise FieldDoesNotExist( - "%s has no field named '%s'" % (self.object_name, field_name) - ) -django.core.exceptions.FieldDoesNotExist: Unity has no field named 'name' -ERROR 2025-08-16 11:33:25,683 log Internal Server Error: /api/v1/products/product/df0d43f9-14c2-4db8-a31b-ab49220c0b50/update/ -Traceback (most recent call last): - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 489, in thread_handler - raise exc_info[1] - File "/usr/local/lib/python3.13/site-packages/django/core/handlers/exception.py", line 42, in inner - response = await get_response(request) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 489, in thread_handler - raise exc_info[1] - File "/usr/local/lib/python3.13/site-packages/django/core/handlers/base.py", line 253, in _get_response_async - response = await wrapped_callback( - ^^^^^^^^^^^^^^^^^^^^^^^ - request, *callback_args, **callback_kwargs - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ) - ^ - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 439, in __call__ - ret = await asyncio.shield(exec_coro) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run - result = self.fn(*self.args, **self.kwargs) - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 493, in thread_handler - return func(*args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper - return view_func(request, *args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/django/views/generic/base.py", line 105, in view - return self.dispatch(request, *args, **kwargs) - ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 515, in dispatch - response = self.handle_exception(exc) - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 475, in handle_exception - self.raise_uncaught_exception(exc) - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception - raise exc - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 512, in dispatch - response = handler(request, *args, **kwargs) - File "/code/core/apps/products/views/product.py", line 73, in patch - if serializer.is_valid(raise_exception=True): - ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/serializers.py", line 225, in is_valid - self._validated_data = self.run_validation(self.initial_data) - ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/serializers.py", line 447, in run_validation - value = self.validate(value) - File "/code/core/apps/products/serializers/product.py", line 33, in validate - folder = Folder.objects.filter(id=data['folder_id']).first() - ~~~~^^^^^^^^^^^^^ -KeyError: 'folder_id' -WARNING 2025-08-16 11:33:54,147 log Bad Request: /api/v1/products/product/df0d43f9-14c2-4db8-a31b-ab49220c0b50/update/ -WARNING 2025-08-16 11:36:02,628 log Not Found: /api/v1/products/product/df0d43f9-14c2-4db8-a31b-ab49220c0b50/delete/ -WARNING 2025-08-16 11:36:05,795 log Not Found: /api/v1/products/product/df0d43f9-14c2-4db8-a31b-ab49220c0b50/delete/ -WARNING 2025-08-16 11:36:06,351 log Not Found: /api/v1/products/product/df0d43f9-14c2-4db8-a31b-ab49220c0b50/delete/ -ERROR 2025-08-16 14:32:15,075 log Internal Server Error: /api/v1/products/folder/1d47d62e-f6ba-4816-8fde-a459fb8c107e/products/ -Traceback (most recent call last): - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 489, in thread_handler - raise exc_info[1] - File "/usr/local/lib/python3.13/site-packages/django/core/handlers/exception.py", line 42, in inner - response = await get_response(request) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 489, in thread_handler - raise exc_info[1] - File "/usr/local/lib/python3.13/site-packages/django/core/handlers/base.py", line 253, in _get_response_async - response = await wrapped_callback( - ^^^^^^^^^^^^^^^^^^^^^^^ - request, *callback_args, **callback_kwargs - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ) - ^ - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 439, in __call__ - ret = await asyncio.shield(exec_coro) - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/concurrent/futures/thread.py", line 59, in run - result = self.fn(*self.args, **self.kwargs) - File "/usr/local/lib/python3.13/site-packages/asgiref/sync.py", line 493, in thread_handler - return func(*args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper - return view_func(request, *args, **kwargs) - File "/usr/local/lib/python3.13/site-packages/django/views/generic/base.py", line 105, in view - return self.dispatch(request, *args, **kwargs) - ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 515, in dispatch - response = self.handle_exception(exc) - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 475, in handle_exception - self.raise_uncaught_exception(exc) - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^ - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception - raise exc - File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 512, in dispatch - response = handler(request, *args, **kwargs) - File "/code/core/apps/products/views/product.py", line 111, in get - products = Product.objects.filder(folder=folder) - ^^^^^^^^^^^^^^^^^^^^^^ -AttributeError: 'Manager' object has no attribute 'filder'. Did you mean: 'filter'?