fix bugs
This commit is contained in:
@@ -4,26 +4,22 @@ from rest_framework import serializers
|
|||||||
|
|
||||||
from core.apps.projects.models.project import Project, ProjectFolder, ProjectLocation
|
from core.apps.projects.models.project import Project, ProjectFolder, ProjectLocation
|
||||||
from core.apps.projects.serializers.project_location import ProjectLocationSerializer, ProjectLocationListSerializer
|
from core.apps.projects.serializers.project_location import ProjectLocationSerializer, ProjectLocationListSerializer
|
||||||
|
from core.apps.accounts.serializers.user import UserListSerializer
|
||||||
|
from core.apps.wherehouse.serializers.wherehouse import WhereHouseListSerializer
|
||||||
|
from core.apps.finance.serializers.cash_transaction import CashTransactionListSerializer
|
||||||
|
|
||||||
|
|
||||||
class ProjectListSerializer(serializers.ModelSerializer):
|
class ProjectListSerializer(serializers.ModelSerializer):
|
||||||
location = ProjectLocationListSerializer()
|
folder_name = serializers.SerializerMethodField(method_name='get_folder_name')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Project
|
model = Project
|
||||||
fields = [
|
fields = [
|
||||||
'id', 'name', 'location', 'start_date', 'end_date'
|
'id', 'name', 'start_date', 'end_date', 'status', 'folder_name'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def get_folder_name(self, obj):
|
||||||
class ProjectDetailSerialzier(serializers.ModelSerializer):
|
return obj.folder.name if obj.folder else None
|
||||||
location = ProjectLocationListSerializer()
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = Project
|
|
||||||
fields = [
|
|
||||||
'id', 'name', 'location', 'start_date', 'end_date', 'status', 'benifit_plan'
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
class ProjectUpdateSerialzier(serializers.ModelSerializer):
|
class ProjectUpdateSerialzier(serializers.ModelSerializer):
|
||||||
@@ -142,11 +138,14 @@ class ProjectFolderCreateSerializer(serializers.Serializer):
|
|||||||
|
|
||||||
|
|
||||||
class ProjectFolderListSerializer(serializers.ModelSerializer):
|
class ProjectFolderListSerializer(serializers.ModelSerializer):
|
||||||
projects = ProjectListSerializer(many=True)
|
projects_count = serializers.SerializerMethodField(method_name='get_projects_count')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = ProjectFolder
|
model = ProjectFolder
|
||||||
fields = ['id', 'name', 'projects']
|
fields = ['id', 'name', 'projects_count']
|
||||||
|
|
||||||
|
def get_projects_count(self, obj):
|
||||||
|
return obj.projects.count()
|
||||||
|
|
||||||
|
|
||||||
class ProjectFolderProjectCreateSerializer(serializers.Serializer):
|
class ProjectFolderProjectCreateSerializer(serializers.Serializer):
|
||||||
@@ -257,4 +256,31 @@ class ChangeProjectFolderSerializer(serializers.Serializer):
|
|||||||
raise serializers.ValidationError("the project folder is attached for this project")
|
raise serializers.ValidationError("the project folder is attached for this project")
|
||||||
data['project'] = project
|
data['project'] = project
|
||||||
data['project_folder'] = project_folder
|
data['project_folder'] = project_folder
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class ProjectDetailSerialzier(serializers.ModelSerializer):
|
||||||
|
location = ProjectLocationListSerializer()
|
||||||
|
folder = ProjectFolderListSerializer()
|
||||||
|
builder = serializers.SerializerMethodField(method_name='get_builder')
|
||||||
|
boss = UserListSerializer(many=True)
|
||||||
|
foreman = UserListSerializer(many=True)
|
||||||
|
other_members = UserListSerializer(many=True)
|
||||||
|
wherehouse = WhereHouseListSerializer(many=True)
|
||||||
|
cash_transaction = CashTransactionListSerializer(many=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Project
|
||||||
|
fields = [
|
||||||
|
'id', 'name', 'location', 'start_date', 'end_date', 'status', 'benifit_plan',
|
||||||
|
'area', 'currency',
|
||||||
|
'folder', 'builder', 'boss', 'foreman', 'other_members', 'wherehouse', 'cash_transaction', 'is_archive'
|
||||||
|
]
|
||||||
|
|
||||||
|
def get_builder(self, obj):
|
||||||
|
return {
|
||||||
|
'id': obj.builder.id,
|
||||||
|
'name': obj.builder.name
|
||||||
|
}
|
||||||
@@ -12,18 +12,24 @@ from core.apps.shared.paginations.custom import CustomPageNumberPagination
|
|||||||
|
|
||||||
class ProjectListApiView(generics.ListAPIView):
|
class ProjectListApiView(generics.ListAPIView):
|
||||||
serializer_class = serializers.ProjectListSerializer
|
serializer_class = serializers.ProjectListSerializer
|
||||||
queryset = Project.objects.filter(is_archive=False).select_related('location')
|
queryset = Project.objects.all()
|
||||||
permission_classes = [HasRolePermission]
|
permission_classes = [HasRolePermission]
|
||||||
required_permissions = ['project']
|
required_permissions = ['project']
|
||||||
pagination_class = CustomPageNumberPagination
|
pagination_class = CustomPageNumberPagination
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return Project.objects.exclude(folder__isnull=False)
|
return (
|
||||||
|
Project.objects
|
||||||
|
.select_related('location')
|
||||||
|
.exclude(is_archive=True)
|
||||||
|
.exclude(folder__isnull=False)
|
||||||
|
)
|
||||||
|
|
||||||
class ProjectDetailApiView(generics.RetrieveAPIView):
|
class ProjectDetailApiView(generics.RetrieveAPIView):
|
||||||
serializer_class = serializers.ProjectDetailSerialzier
|
serializer_class = serializers.ProjectDetailSerialzier
|
||||||
queryset = Project.objects.select_related('location')
|
queryset = Project.objects.select_related('location', 'folder', 'builder').prefetch_related(
|
||||||
|
'boss', 'foreman', 'other_members', 'wherehouse', 'cash_transaction',
|
||||||
|
)
|
||||||
permission_classes = [HasRolePermission]
|
permission_classes = [HasRolePermission]
|
||||||
required_permissions = ['project']
|
required_permissions = ['project']
|
||||||
lookup_field = 'id'
|
lookup_field = 'id'
|
||||||
@@ -73,9 +79,7 @@ class ProjectFolderCreateApiView(generics.CreateAPIView):
|
|||||||
|
|
||||||
class ProjectFolderListApiView(generics.ListAPIView):
|
class ProjectFolderListApiView(generics.ListAPIView):
|
||||||
serializer_class = serializers.ProjectFolderListSerializer
|
serializer_class = serializers.ProjectFolderListSerializer
|
||||||
queryset = ProjectFolder.objects.prefetch_related(
|
queryset = ProjectFolder.objects.prefetch_related('projects')
|
||||||
Prefetch('projects', Project.objects.filter(is_archive=False))
|
|
||||||
)
|
|
||||||
permission_classes = [HasRolePermission]
|
permission_classes = [HasRolePermission]
|
||||||
required_permissions = ['project_folder']
|
required_permissions = ['project_folder']
|
||||||
pagination_class = CustomPageNumberPagination
|
pagination_class = CustomPageNumberPagination
|
||||||
@@ -110,7 +114,13 @@ class ProjectFolderDetailApiView(generics.GenericAPIView):
|
|||||||
required_permissions = ['project_folder']
|
required_permissions = ['project_folder']
|
||||||
|
|
||||||
def get(self, request, id):
|
def get(self, request, id):
|
||||||
folder = get_object_or_404(ProjectFolder, id=id)
|
folder = (
|
||||||
|
ProjectFolder.objects
|
||||||
|
.prefetch_related(
|
||||||
|
Prefetch('projects', queryset=Project.objects.exclude(is_archive=True))
|
||||||
|
)
|
||||||
|
.get(id=id)
|
||||||
|
)
|
||||||
serializer = self.serializer_class(folder)
|
serializer = self.serializer_class(folder)
|
||||||
return Response(serializer.data, status=200)
|
return Response(serializer.data, status=200)
|
||||||
|
|
||||||
|
|||||||
982
resources/logs/django.log.2025-08-07
Normal file
982
resources/logs/django.log.2025-08-07
Normal file
@@ -0,0 +1,982 @@
|
|||||||
|
WARNING 2025-08-07 09:58:53,151 log Forbidden: /api/v1/projects/project_folder/list/
|
||||||
|
ERROR 2025-08-07 11:51:37,635 log Internal Server Error: /api/v1/shared/region/list/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner
|
||||||
|
response = await get_response(request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
|
||||||
|
response = await wrapped_callback(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__
|
||||||
|
ret = await asyncio.shield(exec_coro)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
|
||||||
|
result = self.fn(*self.args, **self.kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper
|
||||||
|
return view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view
|
||||||
|
return self.dispatch(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch
|
||||||
|
response = self.handle_exception(exc)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception
|
||||||
|
self.raise_uncaught_exception(exc)
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception
|
||||||
|
raise exc
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch
|
||||||
|
response = handler(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/generics.py", line 203, in get
|
||||||
|
return self.list(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/mixins.py", line 40, in list
|
||||||
|
page = self.paginate_queryset(queryset)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/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.12/site-packages/rest_framework/pagination.py", line 211, in paginate_queryset
|
||||||
|
self.page = paginator.page(page_number)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/paginator.py", line 89, in page
|
||||||
|
number = self.validate_number(number)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/paginator.py", line 70, in validate_number
|
||||||
|
if number > self.num_pages:
|
||||||
|
^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/functional.py", line 47, in __get__
|
||||||
|
res = instance.__dict__[self.name] = self.func(instance)
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/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.12/site-packages/django/utils/functional.py", line 47, in __get__
|
||||||
|
res = instance.__dict__[self.name] = self.func(instance)
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/paginator.py", line 110, in count
|
||||||
|
return c()
|
||||||
|
^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/cacheops/query.py", line 271, in count
|
||||||
|
return cached_as(self)(lambda: self._no_monkey.count(self))()
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/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.12/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.12/site-packages/django/db/models/sql/compiler.py", line 766, in as_sql
|
||||||
|
extra_select, order_by, group_by = self.pre_sql_setup(
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/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.12/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(
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/sql/compiler.py", line 299, in get_select
|
||||||
|
related_klass_infos = self.get_related_selections(select, select_mask)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/sql/compiler.py", line 1396, in get_related_selections
|
||||||
|
raise FieldError(
|
||||||
|
django.core.exceptions.FieldError: Invalid field name(s) given in select_related: 'districts'. Choices are: (none)
|
||||||
|
ERROR 2025-08-07 11:57:37,791 log Internal Server Error: /admin/projects/project/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute
|
||||||
|
return self.cursor.execute(sql, params)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
psycopg2.errors.UndefinedColumn: column projects_project.location_id does not exist
|
||||||
|
LINE 1: ...project"."updated_at", "projects_project"."name", "projects_...
|
||||||
|
^
|
||||||
|
HINT: Perhaps you meant to reference the column "projects_project.location".
|
||||||
|
|
||||||
|
|
||||||
|
The above exception was the direct cause of the following exception:
|
||||||
|
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner
|
||||||
|
response = await get_response(request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
|
||||||
|
response = await wrapped_callback(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__
|
||||||
|
ret = await asyncio.shield(exec_coro)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
|
||||||
|
result = self.fn(*self.args, **self.kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/options.py", line 719, in wrapper
|
||||||
|
return self.admin_site.admin_view(view)(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
|
||||||
|
result = _process_exception(request, e)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
|
||||||
|
response = view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper
|
||||||
|
response = view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/sites.py", line 246, in inner
|
||||||
|
return view(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper
|
||||||
|
return bound_method(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
|
||||||
|
result = _process_exception(request, e)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
|
||||||
|
response = view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/options.py", line 2163, in changelist_view
|
||||||
|
"selection_note": _("0 of %(cnt)s selected") % {"cnt": len(cl.result_list)},
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 366, in __len__
|
||||||
|
self._fetch_all()
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/cacheops/query.py", line 250, in _fetch_all
|
||||||
|
return self._no_monkey._fetch_all(self)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 1949, in _fetch_all
|
||||||
|
self._result_cache = list(self._iterable_class(self))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 91, in __iter__
|
||||||
|
results = compiler.execute_sql(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/sql/compiler.py", line 1623, in execute_sql
|
||||||
|
cursor.execute(sql, params)
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 122, in execute
|
||||||
|
return super().execute(sql, params)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/cacheops/transaction.py", line 98, in execute
|
||||||
|
result = self._no_monkey.execute(self, sql, params)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 79, in execute
|
||||||
|
return self._execute_with_wrappers(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
|
||||||
|
return executor(sql, params, many, context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 100, in _execute
|
||||||
|
with self.db.wrap_database_errors:
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/utils.py", line 91, in __exit__
|
||||||
|
raise dj_exc_value.with_traceback(traceback) from exc_value
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute
|
||||||
|
return self.cursor.execute(sql, params)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
django.db.utils.ProgrammingError: column projects_project.location_id does not exist
|
||||||
|
LINE 1: ...project"."updated_at", "projects_project"."name", "projects_...
|
||||||
|
^
|
||||||
|
HINT: Perhaps you meant to reference the column "projects_project.location".
|
||||||
|
|
||||||
|
WARNING 2025-08-07 11:57:37,989 log Not Found: /favicon.ico
|
||||||
|
ERROR 2025-08-07 11:59:27,529 log Internal Server Error: /admin/projects/project/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute
|
||||||
|
return self.cursor.execute(sql, params)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
psycopg2.errors.UndefinedColumn: column projects_project.location_id does not exist
|
||||||
|
LINE 1: ...project"."updated_at", "projects_project"."name", "projects_...
|
||||||
|
^
|
||||||
|
HINT: Perhaps you meant to reference the column "projects_project.location".
|
||||||
|
|
||||||
|
|
||||||
|
The above exception was the direct cause of the following exception:
|
||||||
|
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner
|
||||||
|
response = await get_response(request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
|
||||||
|
response = await wrapped_callback(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__
|
||||||
|
ret = await asyncio.shield(exec_coro)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
|
||||||
|
result = self.fn(*self.args, **self.kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/options.py", line 719, in wrapper
|
||||||
|
return self.admin_site.admin_view(view)(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
|
||||||
|
result = _process_exception(request, e)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
|
||||||
|
response = view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper
|
||||||
|
response = view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/sites.py", line 246, in inner
|
||||||
|
return view(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/decorators.py", line 48, in _wrapper
|
||||||
|
return bound_method(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
|
||||||
|
result = _process_exception(request, e)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
|
||||||
|
response = view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/options.py", line 2163, in changelist_view
|
||||||
|
"selection_note": _("0 of %(cnt)s selected") % {"cnt": len(cl.result_list)},
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 366, in __len__
|
||||||
|
self._fetch_all()
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/cacheops/query.py", line 250, in _fetch_all
|
||||||
|
return self._no_monkey._fetch_all(self)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 1949, in _fetch_all
|
||||||
|
self._result_cache = list(self._iterable_class(self))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 91, in __iter__
|
||||||
|
results = compiler.execute_sql(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/sql/compiler.py", line 1623, in execute_sql
|
||||||
|
cursor.execute(sql, params)
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 122, in execute
|
||||||
|
return super().execute(sql, params)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/cacheops/transaction.py", line 98, in execute
|
||||||
|
result = self._no_monkey.execute(self, sql, params)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 79, in execute
|
||||||
|
return self._execute_with_wrappers(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
|
||||||
|
return executor(sql, params, many, context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 100, in _execute
|
||||||
|
with self.db.wrap_database_errors:
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/utils.py", line 91, in __exit__
|
||||||
|
raise dj_exc_value.with_traceback(traceback) from exc_value
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute
|
||||||
|
return self.cursor.execute(sql, params)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
django.db.utils.ProgrammingError: column projects_project.location_id does not exist
|
||||||
|
LINE 1: ...project"."updated_at", "projects_project"."name", "projects_...
|
||||||
|
^
|
||||||
|
HINT: Perhaps you meant to reference the column "projects_project.location".
|
||||||
|
|
||||||
|
ERROR 2025-08-07 12:05:59,338 log Internal Server Error: /admin/projects/projectlocation/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/options.py", line 683, in get_field
|
||||||
|
return self.fields_map[field_name]
|
||||||
|
~~~~~~~~~~~~~~~^^^^^^^^^^^^
|
||||||
|
KeyError: 'logitude'
|
||||||
|
|
||||||
|
During handling of the above exception, another exception occurred:
|
||||||
|
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/utils.py", line 362, in label_for_field
|
||||||
|
field = _get_non_gfk_field(model._meta, name)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/utils.py", line 330, in _get_non_gfk_field
|
||||||
|
field = opts.get_field(name)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/options.py", line 685, in get_field
|
||||||
|
raise FieldDoesNotExist(
|
||||||
|
django.core.exceptions.FieldDoesNotExist: ProjectLocation has no field named 'logitude'
|
||||||
|
|
||||||
|
During handling of the above exception, another exception occurred:
|
||||||
|
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/options.py", line 683, in get_field
|
||||||
|
return self.fields_map[field_name]
|
||||||
|
~~~~~~~~~~~~~~~^^^^^^^^^^^^
|
||||||
|
KeyError: 'logitude'
|
||||||
|
|
||||||
|
During handling of the above exception, another exception occurred:
|
||||||
|
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/utils.py", line 383, in label_for_field
|
||||||
|
attr = get_fields_from_path(model, name)[-1]
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/utils.py", line 547, in get_fields_from_path
|
||||||
|
fields.append(parent._meta.get_field(piece))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/options.py", line 685, in get_field
|
||||||
|
raise FieldDoesNotExist(
|
||||||
|
django.core.exceptions.FieldDoesNotExist: ProjectLocation has no field named 'logitude'
|
||||||
|
|
||||||
|
During handling of the above exception, another exception occurred:
|
||||||
|
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner
|
||||||
|
response = await get_response(request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 284, in _get_response_async
|
||||||
|
response = await sync_to_async(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__
|
||||||
|
ret = await asyncio.shield(exec_coro)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
|
||||||
|
result = self.fn(*self.args, **self.kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/response.py", line 114, in render
|
||||||
|
self.content = self.rendered_content
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content
|
||||||
|
return template.render(context, self._request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render
|
||||||
|
return self.template.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 171, in render
|
||||||
|
return self._render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 163, in _render
|
||||||
|
return self.nodelist.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 1016, in render
|
||||||
|
return SafeString("".join([node.render_annotated(context) for node in self]))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated
|
||||||
|
return self.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render
|
||||||
|
return compiled_parent._render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 163, in _render
|
||||||
|
return self.nodelist.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 1016, in render
|
||||||
|
return SafeString("".join([node.render_annotated(context) for node in self]))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated
|
||||||
|
return self.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render
|
||||||
|
return compiled_parent._render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 163, in _render
|
||||||
|
return self.nodelist.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 1016, in render
|
||||||
|
return SafeString("".join([node.render_annotated(context) for node in self]))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated
|
||||||
|
return self.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render
|
||||||
|
result = block.nodelist.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 1016, in render
|
||||||
|
return SafeString("".join([node.render_annotated(context) for node in self]))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated
|
||||||
|
return self.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render
|
||||||
|
result = block.nodelist.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 1016, in render
|
||||||
|
return SafeString("".join([node.render_annotated(context) for node in self]))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated
|
||||||
|
return self.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render
|
||||||
|
result = block.nodelist.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 1016, in render
|
||||||
|
return SafeString("".join([node.render_annotated(context) for node in self]))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated
|
||||||
|
return self.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/templatetags/base.py", line 45, in render
|
||||||
|
return super().render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/library.py", line 359, in render
|
||||||
|
_dict = self.func(*resolved_args, **resolved_kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_list.py", line 344, in result_list
|
||||||
|
headers = list(result_headers(cl))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_list.py", line 91, in result_headers
|
||||||
|
text, attr = label_for_field(
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/utils.py", line 390, in label_for_field
|
||||||
|
raise AttributeError(message)
|
||||||
|
AttributeError: Unable to lookup 'logitude' on ProjectLocation or ProjectLocation
|
||||||
|
ERROR 2025-08-07 12:06:03,853 log Internal Server Error: /admin/projects/projectlocation/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/options.py", line 683, in get_field
|
||||||
|
return self.fields_map[field_name]
|
||||||
|
~~~~~~~~~~~~~~~^^^^^^^^^^^^
|
||||||
|
KeyError: 'logitude'
|
||||||
|
|
||||||
|
During handling of the above exception, another exception occurred:
|
||||||
|
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/utils.py", line 362, in label_for_field
|
||||||
|
field = _get_non_gfk_field(model._meta, name)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/utils.py", line 330, in _get_non_gfk_field
|
||||||
|
field = opts.get_field(name)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/options.py", line 685, in get_field
|
||||||
|
raise FieldDoesNotExist(
|
||||||
|
django.core.exceptions.FieldDoesNotExist: ProjectLocation has no field named 'logitude'
|
||||||
|
|
||||||
|
During handling of the above exception, another exception occurred:
|
||||||
|
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/options.py", line 683, in get_field
|
||||||
|
return self.fields_map[field_name]
|
||||||
|
~~~~~~~~~~~~~~~^^^^^^^^^^^^
|
||||||
|
KeyError: 'logitude'
|
||||||
|
|
||||||
|
During handling of the above exception, another exception occurred:
|
||||||
|
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/utils.py", line 383, in label_for_field
|
||||||
|
attr = get_fields_from_path(model, name)[-1]
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/utils.py", line 547, in get_fields_from_path
|
||||||
|
fields.append(parent._meta.get_field(piece))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/options.py", line 685, in get_field
|
||||||
|
raise FieldDoesNotExist(
|
||||||
|
django.core.exceptions.FieldDoesNotExist: ProjectLocation has no field named 'logitude'
|
||||||
|
|
||||||
|
During handling of the above exception, another exception occurred:
|
||||||
|
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner
|
||||||
|
response = await get_response(request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 284, in _get_response_async
|
||||||
|
response = await sync_to_async(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__
|
||||||
|
ret = await asyncio.shield(exec_coro)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
|
||||||
|
result = self.fn(*self.args, **self.kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/response.py", line 114, in render
|
||||||
|
self.content = self.rendered_content
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/response.py", line 92, in rendered_content
|
||||||
|
return template.render(context, self._request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render
|
||||||
|
return self.template.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 171, in render
|
||||||
|
return self._render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 163, in _render
|
||||||
|
return self.nodelist.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 1016, in render
|
||||||
|
return SafeString("".join([node.render_annotated(context) for node in self]))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated
|
||||||
|
return self.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render
|
||||||
|
return compiled_parent._render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 163, in _render
|
||||||
|
return self.nodelist.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 1016, in render
|
||||||
|
return SafeString("".join([node.render_annotated(context) for node in self]))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated
|
||||||
|
return self.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py", line 159, in render
|
||||||
|
return compiled_parent._render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 163, in _render
|
||||||
|
return self.nodelist.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 1016, in render
|
||||||
|
return SafeString("".join([node.render_annotated(context) for node in self]))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated
|
||||||
|
return self.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render
|
||||||
|
result = block.nodelist.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 1016, in render
|
||||||
|
return SafeString("".join([node.render_annotated(context) for node in self]))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated
|
||||||
|
return self.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render
|
||||||
|
result = block.nodelist.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 1016, in render
|
||||||
|
return SafeString("".join([node.render_annotated(context) for node in self]))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated
|
||||||
|
return self.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py", line 65, in render
|
||||||
|
result = block.nodelist.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 1016, in render
|
||||||
|
return SafeString("".join([node.render_annotated(context) for node in self]))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/base.py", line 977, in render_annotated
|
||||||
|
return self.render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/templatetags/base.py", line 45, in render
|
||||||
|
return super().render(context)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/template/library.py", line 359, in render
|
||||||
|
_dict = self.func(*resolved_args, **resolved_kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_list.py", line 344, in result_list
|
||||||
|
headers = list(result_headers(cl))
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/templatetags/admin_list.py", line 91, in result_headers
|
||||||
|
text, attr = label_for_field(
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/contrib/admin/utils.py", line 390, in label_for_field
|
||||||
|
raise AttributeError(message)
|
||||||
|
AttributeError: Unable to lookup 'logitude' on ProjectLocation or ProjectLocation
|
||||||
|
ERROR 2025-08-07 12:15:49,386 log Internal Server Error: /api/v1/projects/project/create/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner
|
||||||
|
response = await get_response(request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
|
||||||
|
response = await wrapped_callback(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__
|
||||||
|
ret = await asyncio.shield(exec_coro)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
|
||||||
|
result = self.fn(*self.args, **self.kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper
|
||||||
|
return view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view
|
||||||
|
return self.dispatch(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch
|
||||||
|
response = self.handle_exception(exc)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception
|
||||||
|
self.raise_uncaught_exception(exc)
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception
|
||||||
|
raise exc
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch
|
||||||
|
response = handler(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/generics.py", line 194, in post
|
||||||
|
return self.create(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/mixins.py", line 19, in create
|
||||||
|
self.perform_create(serializer)
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/mixins.py", line 24, in perform_create
|
||||||
|
serializer.save()
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 210, in save
|
||||||
|
self.instance = self.create(validated_data)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/code/core/apps/projects/serializers/project.py", line 72, in create
|
||||||
|
location = ProjectLocation.objects.create(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/manager.py", line 87, in manager_method
|
||||||
|
return getattr(self.get_queryset(), name)(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/query.py", line 661, in create
|
||||||
|
obj = self.model(**kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/db/models/base.py", line 569, in __init__
|
||||||
|
raise TypeError(
|
||||||
|
TypeError: ProjectLocation() got unexpected keyword arguments: 'distrct'
|
||||||
|
ERROR 2025-08-07 12:22:59,261 log Internal Server Error: /api/v1/projects/project/list/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner
|
||||||
|
response = await get_response(request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
|
||||||
|
response = await wrapped_callback(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__
|
||||||
|
ret = await asyncio.shield(exec_coro)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
|
||||||
|
result = self.fn(*self.args, **self.kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper
|
||||||
|
return view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view
|
||||||
|
return self.dispatch(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch
|
||||||
|
response = self.handle_exception(exc)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception
|
||||||
|
self.raise_uncaught_exception(exc)
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception
|
||||||
|
raise exc
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch
|
||||||
|
response = handler(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/generics.py", line 203, in get
|
||||||
|
return self.list(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/mixins.py", line 43, in list
|
||||||
|
return self.get_paginated_response(serializer.data)
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 797, in data
|
||||||
|
ret = super().data
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 251, in data
|
||||||
|
self._data = self.to_representation(self.instance)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/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.12/site-packages/rest_framework/serializers.py", line 540, in to_representation
|
||||||
|
ret[field.field_name] = field.to_representation(attribute)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 525, in to_representation
|
||||||
|
for field in fields:
|
||||||
|
^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 386, in _readable_fields
|
||||||
|
for field in self.fields.values():
|
||||||
|
^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/functional.py", line 47, in __get__
|
||||||
|
res = instance.__dict__[self.name] = self.func(instance)
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 374, in fields
|
||||||
|
for key, value in self.get_fields().items():
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 1105, in get_fields
|
||||||
|
field_class, field_kwargs = self.build_field(
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 1251, in build_field
|
||||||
|
return self.build_unknown_field(field_name, model_class)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 1369, in build_unknown_field
|
||||||
|
raise ImproperlyConfigured(
|
||||||
|
django.core.exceptions.ImproperlyConfigured: Field name `location` is not valid for model `ProjectLocation` in `core.apps.projects.serializers.project_location.ProjectLocationListSerializer`.
|
||||||
|
ERROR 2025-08-07 12:23:00,420 log Internal Server Error: /api/v1/projects/project/list/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner
|
||||||
|
response = await get_response(request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
|
||||||
|
response = await wrapped_callback(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__
|
||||||
|
ret = await asyncio.shield(exec_coro)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
|
||||||
|
result = self.fn(*self.args, **self.kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper
|
||||||
|
return view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view
|
||||||
|
return self.dispatch(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch
|
||||||
|
response = self.handle_exception(exc)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception
|
||||||
|
self.raise_uncaught_exception(exc)
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception
|
||||||
|
raise exc
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch
|
||||||
|
response = handler(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/generics.py", line 203, in get
|
||||||
|
return self.list(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/mixins.py", line 43, in list
|
||||||
|
return self.get_paginated_response(serializer.data)
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 797, in data
|
||||||
|
ret = super().data
|
||||||
|
^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 251, in data
|
||||||
|
self._data = self.to_representation(self.instance)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/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.12/site-packages/rest_framework/serializers.py", line 540, in to_representation
|
||||||
|
ret[field.field_name] = field.to_representation(attribute)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 525, in to_representation
|
||||||
|
for field in fields:
|
||||||
|
^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 386, in _readable_fields
|
||||||
|
for field in self.fields.values():
|
||||||
|
^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/utils/functional.py", line 47, in __get__
|
||||||
|
res = instance.__dict__[self.name] = self.func(instance)
|
||||||
|
^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 374, in fields
|
||||||
|
for key, value in self.get_fields().items():
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 1105, in get_fields
|
||||||
|
field_class, field_kwargs = self.build_field(
|
||||||
|
^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 1251, in build_field
|
||||||
|
return self.build_unknown_field(field_name, model_class)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 1369, in build_unknown_field
|
||||||
|
raise ImproperlyConfigured(
|
||||||
|
django.core.exceptions.ImproperlyConfigured: Field name `location` is not valid for model `ProjectLocation` in `core.apps.projects.serializers.project_location.ProjectLocationListSerializer`.
|
||||||
|
ERROR 2025-08-07 12:30:41,279 log Internal Server Error: /api/v1/projects/project/8b40e979-0274-48d3-92f0-007bd2e11d71/update/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner
|
||||||
|
response = await get_response(request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
|
||||||
|
response = await wrapped_callback(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__
|
||||||
|
ret = await asyncio.shield(exec_coro)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
|
||||||
|
result = self.fn(*self.args, **self.kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper
|
||||||
|
return view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view
|
||||||
|
return self.dispatch(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch
|
||||||
|
response = self.handle_exception(exc)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception
|
||||||
|
self.raise_uncaught_exception(exc)
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception
|
||||||
|
raise exc
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch
|
||||||
|
response = handler(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/generics.py", line 233, in patch
|
||||||
|
return self.partial_update(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/mixins.py", line 82, in partial_update
|
||||||
|
return self.update(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/mixins.py", line 67, in update
|
||||||
|
serializer.is_valid(raise_exception=True)
|
||||||
|
File "/usr/local/lib/python3.12/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.12/site-packages/rest_framework/serializers.py", line 444, in run_validation
|
||||||
|
value = self.to_internal_value(data)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 501, in to_internal_value
|
||||||
|
validated_value = field.run_validation(primitive_value)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 447, in run_validation
|
||||||
|
value = self.validate(value)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/code/core/apps/projects/serializers/project_location.py", line 15, in validate
|
||||||
|
region = Region.objects.filter(id=data['region_id']).first()
|
||||||
|
~~~~^^^^^^^^^^^^^
|
||||||
|
KeyError: 'region_id'
|
||||||
|
ERROR 2025-08-07 12:34:40,832 log Internal Server Error: /api/v1/projects/project/8b40e979-0274-48d3-92f0-007bd2e11d71/update/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner
|
||||||
|
response = await get_response(request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
|
||||||
|
response = await wrapped_callback(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__
|
||||||
|
ret = await asyncio.shield(exec_coro)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
|
||||||
|
result = self.fn(*self.args, **self.kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper
|
||||||
|
return view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view
|
||||||
|
return self.dispatch(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch
|
||||||
|
response = self.handle_exception(exc)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception
|
||||||
|
self.raise_uncaught_exception(exc)
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception
|
||||||
|
raise exc
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch
|
||||||
|
response = handler(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/generics.py", line 233, in patch
|
||||||
|
return self.partial_update(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/mixins.py", line 82, in partial_update
|
||||||
|
return self.update(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/mixins.py", line 67, in update
|
||||||
|
serializer.is_valid(raise_exception=True)
|
||||||
|
File "/usr/local/lib/python3.12/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.12/site-packages/rest_framework/serializers.py", line 444, in run_validation
|
||||||
|
value = self.to_internal_value(data)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 501, in to_internal_value
|
||||||
|
validated_value = field.run_validation(primitive_value)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 447, in run_validation
|
||||||
|
value = self.validate(value)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/code/core/apps/projects/serializers/project_location.py", line 15, in validate
|
||||||
|
region = Region.objects.filter(id=data['region_id']).first()
|
||||||
|
~~~~^^^^^^^^^^^^^
|
||||||
|
KeyError: 'region_id'
|
||||||
|
ERROR 2025-08-07 12:34:43,292 log Internal Server Error: /api/v1/projects/project/8b40e979-0274-48d3-92f0-007bd2e11d71/update/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/exception.py", line 42, in inner
|
||||||
|
response = await get_response(request)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 489, in thread_handler
|
||||||
|
raise exc_info[1]
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
|
||||||
|
response = await wrapped_callback(
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 439, in __call__
|
||||||
|
ret = await asyncio.shield(exec_coro)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
|
||||||
|
result = self.fn(*self.args, **self.kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/asgiref/sync.py", line 493, in thread_handler
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper
|
||||||
|
return view_func(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/django/views/generic/base.py", line 105, in view
|
||||||
|
return self.dispatch(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 515, in dispatch
|
||||||
|
response = self.handle_exception(exc)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 475, in handle_exception
|
||||||
|
self.raise_uncaught_exception(exc)
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 486, in raise_uncaught_exception
|
||||||
|
raise exc
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/views.py", line 512, in dispatch
|
||||||
|
response = handler(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/generics.py", line 233, in patch
|
||||||
|
return self.partial_update(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/mixins.py", line 82, in partial_update
|
||||||
|
return self.update(request, *args, **kwargs)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/mixins.py", line 67, in update
|
||||||
|
serializer.is_valid(raise_exception=True)
|
||||||
|
File "/usr/local/lib/python3.12/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.12/site-packages/rest_framework/serializers.py", line 444, in run_validation
|
||||||
|
value = self.to_internal_value(data)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 501, in to_internal_value
|
||||||
|
validated_value = field.run_validation(primitive_value)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.12/site-packages/rest_framework/serializers.py", line 447, in run_validation
|
||||||
|
value = self.validate(value)
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/code/core/apps/projects/serializers/project_location.py", line 15, in validate
|
||||||
|
region = Region.objects.filter(id=data['region_id']).first()
|
||||||
|
~~~~^^^^^^^^^^^^^
|
||||||
|
KeyError: 'region_id'
|
||||||
Reference in New Issue
Block a user