add filter to party
This commit is contained in:
@@ -1,32 +1,31 @@
|
|||||||
from calendar import monthrange
|
from calendar import monthrange
|
||||||
|
|
||||||
from django.utils.timezone import timedelta, now
|
from django.utils.timezone import timedelta, now
|
||||||
|
|
||||||
import django_filters
|
import django_filters
|
||||||
|
|
||||||
from core.apps.orders.models import Party
|
from core.apps.orders.models import Party
|
||||||
|
|
||||||
|
|
||||||
class PartyFilter(django_filters.FilterSet):
|
class PartyFilter(django_filters.FilterSet):
|
||||||
DATE_CHOICES = (
|
DATE_CHOICES = (
|
||||||
('today', 'bugun'),
|
('today', 'Bugun'),
|
||||||
('last_week', 'oxirgi hafta'),
|
('last_week', 'Oxirgi hafta'),
|
||||||
('last_month', 'oxirgi oy'),
|
('last_month', 'Oxirgi oy'),
|
||||||
('last_year', 'oirgi yil'),
|
('last_year', 'Oxirgi yil'),
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# delivery date filters
|
# delivery date filters
|
||||||
delivery_date = django_filters.ChoiceFilter(
|
delivery_date = django_filters.ChoiceFilter(
|
||||||
choices=DATE_CHOICES, method='filter_by_deliveyer_date'
|
choices=DATE_CHOICES, method='filter_by_delivery_date'
|
||||||
)
|
)
|
||||||
delivery_start_date = django_filters.DateFilter(field_name="delivery_date", lookup_expr="gte")
|
delivery_start_date = django_filters.DateFilter(field_name="delivery_date", lookup_expr="gte")
|
||||||
delivery_end_date = django_filters.DateFilter(field_name="delivery_date", lookup_expr="lte")
|
delivery_end_date = django_filters.DateFilter(field_name="delivery_date", lookup_expr="lte")
|
||||||
|
|
||||||
# payment date filters
|
# payment date filters
|
||||||
payment_date = django_filters.ChoiceFilter(
|
payment_date = django_filters.ChoiceFilter(
|
||||||
choices=DATE_CHOICES, method='filter_by_payment_date'
|
choices=DATE_CHOICES, method='filter_by_payment_date'
|
||||||
)
|
)
|
||||||
payment_start_date = django_filters.DateFilter(field_name='payment_date', lookup_expr='gte')
|
payment_start_date = django_filters.DateFilter(field_name='payment_date', lookup_expr='gte')
|
||||||
payment_end_date = django_filters.DateFilter(field_name='payment_date', lookup_expr='lte')
|
payment_end_date = django_filters.DateFilter(field_name='payment_date', lookup_expr='lte')
|
||||||
|
|
||||||
# order date filters
|
# order date filters
|
||||||
order_date = django_filters.ChoiceFilter(
|
order_date = django_filters.ChoiceFilter(
|
||||||
choices=DATE_CHOICES, method='filter_by_order_date'
|
choices=DATE_CHOICES, method='filter_by_order_date'
|
||||||
@@ -37,7 +36,9 @@ class PartyFilter(django_filters.FilterSet):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Party
|
model = Party
|
||||||
fields = [
|
fields = [
|
||||||
'status', 'payment_status'
|
'status', 'payment_status', 'confirmation',
|
||||||
|
'orders__wherehouse', 'orders__project', 'orders__project_folder',
|
||||||
|
'mediator', 'orders__counterparty',
|
||||||
]
|
]
|
||||||
|
|
||||||
def filter_by_delivery_date(self, queryset, name, value):
|
def filter_by_delivery_date(self, queryset, name, value):
|
||||||
@@ -51,24 +52,24 @@ class PartyFilter(django_filters.FilterSet):
|
|||||||
end_date = start_date + timedelta(days=6)
|
end_date = start_date + timedelta(days=6)
|
||||||
return queryset.filter(delivery_date__range=(start_date, end_date))
|
return queryset.filter(delivery_date__range=(start_date, end_date))
|
||||||
|
|
||||||
elif value == 'last_year':
|
elif value == 'last_month':
|
||||||
if today.month == 1:
|
if today.month == 1:
|
||||||
last_month_year = today.year - 1
|
last_month_year = today.year - 1
|
||||||
last_month = 12
|
last_month = 12
|
||||||
else:
|
else:
|
||||||
last_month_year = today.year
|
last_month_year = today.year
|
||||||
last_month = today.moth - 1
|
last_month = today.month - 1
|
||||||
|
|
||||||
start_last_month = today.replace(year=last_month_year, month=last_month, day=1)
|
start_last_month = today.replace(year=last_month_year, month=last_month, day=1)
|
||||||
days_in_last_month = monthrange(last_month_year, last_month)[1]
|
days_in_last_month = monthrange(last_month_year, last_month)[1]
|
||||||
end_last_month = start_last_month.replace(day=days_in_last_month)
|
end_last_month = start_last_month.replace(day=days_in_last_month)
|
||||||
|
|
||||||
return queryset.filter(delivery_date__range=(start_last_month, end_last_month))
|
return queryset.filter(delivery_date__range=(start_last_month, end_last_month))
|
||||||
|
|
||||||
elif value == 'last_year':
|
elif value == 'last_year':
|
||||||
start_year = today.replace(year=today.year - 1, month=1, day=1)
|
start_year = today.replace(year=today.year - 1, month=1, day=1)
|
||||||
end_year = today.replace(year=today.year - 1, month=12, day=31)
|
end_year = today.replace(year=today.year - 1, month=12, day=31)
|
||||||
return queryset.filter(delivery_date__range=(start_year, end_year))
|
return queryset.filter(delivery_date__range=(start_year, end_year))
|
||||||
|
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def filter_by_payment_date(self, queryset, name, value):
|
def filter_by_payment_date(self, queryset, name, value):
|
||||||
@@ -76,27 +77,30 @@ class PartyFilter(django_filters.FilterSet):
|
|||||||
|
|
||||||
if value == 'today':
|
if value == 'today':
|
||||||
return queryset.filter(payment_date=today)
|
return queryset.filter(payment_date=today)
|
||||||
|
|
||||||
elif value == 'last_week':
|
elif value == 'last_week':
|
||||||
start_date = today - timedelta(days=today.weekday() + 7)
|
start_date = today - timedelta(days=today.weekday() + 7)
|
||||||
end_date = start_date + timedelta(days=6)
|
end_date = start_date + timedelta(days=6)
|
||||||
return queryset.filter(payment_date__range=(start_date, end_date))
|
return queryset.filter(payment_date__range=(start_date, end_date))
|
||||||
|
|
||||||
elif value == 'last_month':
|
elif value == 'last_month':
|
||||||
if today.month == 1:
|
if today.month == 1:
|
||||||
last_month_year = today.year - 1
|
last_month_year = today.year - 1
|
||||||
last_month = 12
|
last_month = 12
|
||||||
else:
|
else:
|
||||||
last_month_year = today.year
|
last_month_year = today.year
|
||||||
last_month = today.moth - 1
|
last_month = today.month - 1
|
||||||
|
|
||||||
start_last_month = today.replace(year=last_month_year, month=last_month, day=1)
|
start_last_month = today.replace(year=last_month_year, month=last_month, day=1)
|
||||||
days_in_last_month = monthrange(last_month_year, last_month)[1]
|
days_in_last_month = monthrange(last_month_year, last_month)[1]
|
||||||
end_last_month = start_last_month.replace(day=days_in_last_month)
|
end_last_month = start_last_month.replace(day=days_in_last_month)
|
||||||
|
|
||||||
return queryset.filter(payment_date__range=(start_last_month, end_last_month))
|
return queryset.filter(payment_date__range=(start_last_month, end_last_month))
|
||||||
|
|
||||||
elif value == 'last_year':
|
elif value == 'last_year':
|
||||||
start_year = today.replace(year=today.year - 1, month=1, day=1)
|
start_year = today.replace(year=today.year - 1, month=1, day=1)
|
||||||
end_year = today.replace(year=today.year - 1, month=12, day=31)
|
end_year = today.replace(year=today.year - 1, month=12, day=31)
|
||||||
return queryset.filter(payment_date__range=(start_year, end_year))
|
return queryset.filter(payment_date__range=(start_year, end_year))
|
||||||
|
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def filter_by_order_date(self, queryset, name, value):
|
def filter_by_order_date(self, queryset, name, value):
|
||||||
@@ -104,25 +108,28 @@ class PartyFilter(django_filters.FilterSet):
|
|||||||
|
|
||||||
if value == 'today':
|
if value == 'today':
|
||||||
return queryset.filter(order_date=today)
|
return queryset.filter(order_date=today)
|
||||||
|
|
||||||
elif value == 'last_week':
|
elif value == 'last_week':
|
||||||
start_date = today - timedelta(days=today.weekday() + 7)
|
start_date = today - timedelta(days=today.weekday() + 7)
|
||||||
end_date = start_date + timedelta(days=6)
|
end_date = start_date + timedelta(days=6)
|
||||||
return queryset.filter(order_date__range=(start_date, end_date))
|
return queryset.filter(order_date__range=(start_date, end_date))
|
||||||
|
|
||||||
elif value == 'last_month':
|
elif value == 'last_month':
|
||||||
if today.month == 1:
|
if today.month == 1:
|
||||||
last_month_year = today.year - 1
|
last_month_year = today.year - 1
|
||||||
last_month = 12
|
last_month = 12
|
||||||
else:
|
else:
|
||||||
last_month_year = today.year
|
last_month_year = today.year
|
||||||
last_month = today.moth - 1
|
last_month = today.month - 1
|
||||||
|
|
||||||
start_last_month = today.replace(year=last_month_year, month=last_month, day=1)
|
start_last_month = today.replace(year=last_month_year, month=last_month, day=1)
|
||||||
days_in_last_month = monthrange(last_month_year, last_month)[1]
|
days_in_last_month = monthrange(last_month_year, last_month)[1]
|
||||||
end_last_month = start_last_month.replace(day=days_in_last_month)
|
end_last_month = start_last_month.replace(day=days_in_last_month)
|
||||||
|
|
||||||
return queryset.filter(order_date__range=(start_last_month, end_last_month))
|
return queryset.filter(order_date__range=(start_last_month, end_last_month))
|
||||||
|
|
||||||
elif value == 'last_year':
|
elif value == 'last_year':
|
||||||
start_year = today.replace(year=today.year - 1, month=1, day=1)
|
start_year = today.replace(year=today.year - 1, month=1, day=1)
|
||||||
end_year = today.replace(year=today.year - 1, month=12, day=31)
|
end_year = today.replace(year=today.year - 1, month=12, day=31)
|
||||||
return queryset.filter(order_date__range=(start_year, end_year))
|
return queryset.filter(order_date__range=(start_year, end_year))
|
||||||
|
|
||||||
return queryset
|
return queryset
|
||||||
|
|||||||
18
core/apps/orders/migrations/0017_alter_party_confirmation.py
Normal file
18
core/apps/orders/migrations/0017_alter_party_confirmation.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 5.2.4 on 2025-08-22 11:19
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('orders', '0016_remove_party_qqs_order_qqs'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='party',
|
||||||
|
name='confirmation',
|
||||||
|
field=models.CharField(choices=[('EXPECTED', 'kutilmoqda'), ('APPROVER', 'tasdiqlangan'), ('REJECTED', 'rad etilgan')], default='EXPECTED', max_length=20),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -21,6 +21,11 @@ class Party(BaseModel):
|
|||||||
('NOT_PAID', "to'lanmagan"),
|
('NOT_PAID', "to'lanmagan"),
|
||||||
('OVERPAID', "ortiqcha to'langan"),
|
('OVERPAID', "ortiqcha to'langan"),
|
||||||
)
|
)
|
||||||
|
CONFIRMATION = (
|
||||||
|
('EXPECTED', 'kutilmoqda'),
|
||||||
|
('APPROVER', 'tasdiqlangan'),
|
||||||
|
('REJECTED', 'rad etilgan'),
|
||||||
|
)
|
||||||
|
|
||||||
number = models.PositiveIntegerField(default=1)
|
number = models.PositiveIntegerField(default=1)
|
||||||
orders = models.ManyToManyField(Order, related_name='parties', null=True, blank=True)
|
orders = models.ManyToManyField(Order, related_name='parties', null=True, blank=True)
|
||||||
@@ -33,7 +38,7 @@ class Party(BaseModel):
|
|||||||
# choices
|
# choices
|
||||||
status = models.CharField(max_length=20, choices=STATUS, default='NEW')
|
status = models.CharField(max_length=20, choices=STATUS, default='NEW')
|
||||||
payment_status = models.CharField(max_length=20, choices=PAYMENT_STATUS, default='NOT_PAID')
|
payment_status = models.CharField(max_length=20, choices=PAYMENT_STATUS, default='NOT_PAID')
|
||||||
confirmation = models.BooleanField(default=False)
|
confirmation = models.CharField(max_length=20, choices=CONFIRMATION, default='EXPECTED')
|
||||||
# percentages
|
# percentages
|
||||||
payment_percentage = models.FloatField(null=True, blank=True)
|
payment_percentage = models.FloatField(null=True, blank=True)
|
||||||
process = models.FloatField(null=True, blank=True)
|
process = models.FloatField(null=True, blank=True)
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
from rest_framework import generics, views
|
from rest_framework import generics, views
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
|
||||||
|
from django_filters.rest_framework.backends import DjangoFilterBackend
|
||||||
|
|
||||||
from core.apps.accounts.permissions.permissions import HasRolePermission
|
from core.apps.accounts.permissions.permissions import HasRolePermission
|
||||||
from core.apps.orders.serializers import party as serializers
|
from core.apps.orders.serializers import party as serializers
|
||||||
from core.apps.orders.models import Order, Party, PartyAmount
|
from core.apps.orders.models import Order, Party, PartyAmount
|
||||||
|
from core.apps.orders.filters.party import PartyFilter
|
||||||
|
|
||||||
|
|
||||||
class PartyCreateApiView(generics.GenericAPIView):
|
class PartyCreateApiView(generics.GenericAPIView):
|
||||||
@@ -31,8 +34,14 @@ class PartyListApiView(generics.GenericAPIView):
|
|||||||
queryset = Party.objects.select_related('party_amount').prefetch_related('orders')
|
queryset = Party.objects.select_related('party_amount').prefetch_related('orders')
|
||||||
permission_classes = [HasRolePermission]
|
permission_classes = [HasRolePermission]
|
||||||
required_permissions = []
|
required_permissions = []
|
||||||
|
filter_backends = [DjangoFilterBackend]
|
||||||
|
filterset_class = PartyFilter
|
||||||
|
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
parties = self.get_queryset()
|
parties = self.filter_queryset(self.get_queryset())
|
||||||
|
page = self.paginate_queryset(parties)
|
||||||
|
if page is not None:
|
||||||
|
serializer = self.serializer_class(page, many=True)
|
||||||
|
return self.get_paginated_response(serializer.data)
|
||||||
serializer = self.serializer_class(parties, many=True)
|
serializer = self.serializer_class(parties, many=True)
|
||||||
return Response(serializer.data, status=200)
|
return Response(serializer.data, status=200)
|
||||||
627
resources/logs/django.log.2025-08-21
Normal file
627
resources/logs/django.log.2025-08-21
Normal file
@@ -0,0 +1,627 @@
|
|||||||
|
ERROR 2025-08-21 09:42:08,429 log Internal Server Error: /api/v1/orders/order/8442bf94-b7d5-4cc6-9a02-08682a1750a4/offers/
|
||||||
|
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/orders/views/order.py", line 108, in get
|
||||||
|
serializer = self.serializer_class(offers, many=True)
|
||||||
|
TypeError: 'ellipsis' object is not callable
|
||||||
|
ERROR 2025-08-21 09:42:23,844 log Internal Server Error: /api/v1/orders/order/8442bf94-b7d5-4cc6-9a02-08682a1750a4/offers/
|
||||||
|
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/orders/views/order.py", line 109, in get
|
||||||
|
serializer = self.serializer_class(offers, many=True)
|
||||||
|
TypeError: 'ellipsis' object is not callable
|
||||||
|
ERROR 2025-08-21 09:42:34,591 log Internal Server Error: /api/v1/orders/order/8442bf94-b7d5-4cc6-9a02-08682a1750a4/offers/
|
||||||
|
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/orders/views/order.py", line 109, in get
|
||||||
|
serializer = self.serializer_class(offers, many=True)
|
||||||
|
TypeError: 'ellipsis' object is not callable
|
||||||
|
ERROR 2025-08-21 10:58:53,723 log Internal Server Error: /admin/orders/party/add/
|
||||||
|
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/contrib/admin/options.py", line 719, in wrapper
|
||||||
|
return self.admin_site.admin_view(view)(*args, **kwargs)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
|
||||||
|
result = _process_exception(request, e)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
|
||||||
|
response = view_func(request, *args, **kwargs)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/views/decorators/cache.py", line 80, in _view_wrapper
|
||||||
|
response = view_func(request, *args, **kwargs)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/contrib/admin/sites.py", line 246, in inner
|
||||||
|
return view(request, *args, **kwargs)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/contrib/admin/options.py", line 1984, in add_view
|
||||||
|
return self.changeform_view(request, None, form_url, extra_context)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/utils/decorators.py", line 48, in _wrapper
|
||||||
|
return bound_method(*args, **kwargs)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/utils/decorators.py", line 192, in _view_wrapper
|
||||||
|
result = _process_exception(request, e)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/utils/decorators.py", line 190, in _view_wrapper
|
||||||
|
response = view_func(request, *args, **kwargs)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/contrib/admin/options.py", line 1840, in changeform_view
|
||||||
|
return self._changeform_view(request, object_id, form_url, extra_context)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/contrib/admin/options.py", line 1911, in _changeform_view
|
||||||
|
formsets, inline_instances = self._create_formsets(
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~^
|
||||||
|
request, form.instance, change=False
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
)
|
||||||
|
^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/contrib/admin/options.py", line 2358, in _create_formsets
|
||||||
|
for FormSet, inline in self.get_formsets_with_inlines(*get_formsets_args):
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/contrib/admin/options.py", line 937, in get_formsets_with_inlines
|
||||||
|
for inline in self.get_inline_instances(request, obj):
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/contrib/admin/options.py", line 700, in get_inline_instances
|
||||||
|
inline = inline_class(self.model, self.admin_site)
|
||||||
|
TypeError: SimpleListFilter.__init__() missing 2 required positional arguments: 'model' and 'model_admin'
|
||||||
|
WARNING 2025-08-21 10:58:54,494 log Not Found: /favicon.ico
|
||||||
|
ERROR 2025-08-21 11:33:31,630 log Internal Server Error: /api/v1/orders/offer/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 "/code/core/apps/orders/views/offer.py", line 43, in get
|
||||||
|
orders = self.filter_queryset(self.get_queryset())
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/rest_framework/generics.py", line 154, in filter_queryset
|
||||||
|
queryset = backend().filter_queryset(self.request, queryset, self)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django_filters/rest_framework/backends.py", line 66, in filter_queryset
|
||||||
|
filterset = self.get_filterset(request, queryset, view)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django_filters/rest_framework/backends.py", line 18, in get_filterset
|
||||||
|
filterset_class = self.get_filterset_class(view, queryset)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django_filters/rest_framework/backends.py", line 37, in get_filterset_class
|
||||||
|
assert issubclass(
|
||||||
|
~~~~~~~~~~^
|
||||||
|
queryset.model, filterset_model
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
), "FilterSet model %s does not match queryset model %s" % (
|
||||||
|
^
|
||||||
|
AssertionError: FilterSet model <class 'core.apps.orders.models.order_offer.Offer'> does not match queryset model <class 'core.apps.orders.models.order.Order'>
|
||||||
|
ERROR 2025-08-21 12:39:43,447 log Internal Server Error: /api/v1/orders/party/create/
|
||||||
|
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/orders/views/party.py", line 18, in post
|
||||||
|
serializer.save()
|
||||||
|
~~~~~~~~~~~~~~~^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/rest_framework/serializers.py", line 210, in save
|
||||||
|
self.instance = self.create(validated_data)
|
||||||
|
~~~~~~~~~~~^^^^^^^^^^^^^^^^
|
||||||
|
File "/code/core/apps/orders/serializers/party.py", line 35, in create
|
||||||
|
orders.append(Order(
|
||||||
|
~~~~~^
|
||||||
|
product=resource['product'],
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
...<8 lines>...
|
||||||
|
amount=resource.get('amount'),
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
))
|
||||||
|
^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/models/base.py", line 545, in __init__
|
||||||
|
_setattr(self, field.name, rel_obj)
|
||||||
|
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/models/fields/related_descriptors.py", line 291, in __set__
|
||||||
|
raise ValueError(
|
||||||
|
...<7 lines>...
|
||||||
|
)
|
||||||
|
ValueError: Cannot assign "<QuerySet [<WhereHouse: Yunusobod omborxona>]>": "Order.wherehouse" must be a "WhereHouse" instance.
|
||||||
|
ERROR 2025-08-21 12:40:09,019 log Internal Server Error: /api/v1/orders/party/create/
|
||||||
|
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/orders/views/party.py", line 18, in post
|
||||||
|
serializer.save()
|
||||||
|
~~~~~~~~~~~~~~~^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/rest_framework/serializers.py", line 210, in save
|
||||||
|
self.instance = self.create(validated_data)
|
||||||
|
~~~~~~~~~~~^^^^^^^^^^^^^^^^
|
||||||
|
File "/code/core/apps/orders/serializers/party.py", line 35, in create
|
||||||
|
orders.append(Order(
|
||||||
|
~~~~~^
|
||||||
|
product=resource['product'],
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
...<8 lines>...
|
||||||
|
amount=resource.get('amount'),
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
))
|
||||||
|
^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/models/base.py", line 569, in __init__
|
||||||
|
raise TypeError(
|
||||||
|
...<2 lines>...
|
||||||
|
)
|
||||||
|
TypeError: Order() got unexpected keyword arguments: 'amount'
|
||||||
|
ERROR 2025-08-21 12:40:25,627 log Internal Server Error: /api/v1/orders/party/create/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 105, in _execute
|
||||||
|
return self.cursor.execute(sql, params)
|
||||||
|
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
|
||||||
|
psycopg2.errors.NotNullViolation: null value in column "date" of relation "orders_order" violates not-null constraint
|
||||||
|
DETAIL: Failing row contains (d43838ee-3617-498b-ac66-e713b58883b3, 2025-08-21 12:40:25.455465+05, 2025-08-21 12:40:25.455496+05, null, 1, 7433d0b8-caeb-4202-bd79-698d65d36a2a, null, 0d6bdb31-e2bb-4a3f-a5da-903be4503462, eae700af-6d51-4182-9334-ba1810d8534e, null, NEW, 3fa0d2dc-9c89-4407-8f19-42876f36fade, d796939d-bb78-4aeb-930b-d7ee70c3906f, uzs, 1000, 2000).
|
||||||
|
|
||||||
|
|
||||||
|
The above exception was the direct cause of the following exception:
|
||||||
|
|
||||||
|
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/orders/views/party.py", line 18, in post
|
||||||
|
serializer.save()
|
||||||
|
~~~~~~~~~~~~~~~^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/rest_framework/serializers.py", line 210, in save
|
||||||
|
self.instance = self.create(validated_data)
|
||||||
|
~~~~~~~~~~~^^^^^^^^^^^^^^^^
|
||||||
|
File "/code/core/apps/orders/serializers/party.py", line 48, in create
|
||||||
|
created_orders = Order.objects.bulk_create(orders)
|
||||||
|
File "/usr/local/lib/python3.13/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.13/site-packages/cacheops/query.py", line 367, in bulk_create
|
||||||
|
objs = self._no_monkey.bulk_create(self, objs, *args, **kwargs)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/models/query.py", line 806, in bulk_create
|
||||||
|
returned_columns = self._batched_insert(
|
||||||
|
objs_with_pk,
|
||||||
|
...<4 lines>...
|
||||||
|
unique_fields=unique_fields,
|
||||||
|
)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/models/query.py", line 1896, in _batched_insert
|
||||||
|
self._insert(
|
||||||
|
~~~~~~~~~~~~^
|
||||||
|
item,
|
||||||
|
^^^^^
|
||||||
|
...<5 lines>...
|
||||||
|
returning_fields=self.model._meta.db_returning_fields,
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
)
|
||||||
|
^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/models/query.py", line 1868, in _insert
|
||||||
|
return query.get_compiler(using=using).execute_sql(returning_fields)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 1882, in execute_sql
|
||||||
|
cursor.execute(sql, params)
|
||||||
|
~~~~~~~~~~~~~~^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 122, in execute
|
||||||
|
return super().execute(sql, params)
|
||||||
|
~~~~~~~~~~~~~~~^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/cacheops/transaction.py", line 98, in execute
|
||||||
|
result = self._no_monkey.execute(self, sql, params)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 79, in execute
|
||||||
|
return self._execute_with_wrappers(
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
|
||||||
|
sql, params, many=False, executor=self._execute
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
)
|
||||||
|
^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
|
||||||
|
return executor(sql, params, many, context)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 100, in _execute
|
||||||
|
with self.db.wrap_database_errors:
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/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.13/site-packages/django/db/backends/utils.py", line 105, in _execute
|
||||||
|
return self.cursor.execute(sql, params)
|
||||||
|
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
|
||||||
|
django.db.utils.IntegrityError: null value in column "date" of relation "orders_order" violates not-null constraint
|
||||||
|
DETAIL: Failing row contains (d43838ee-3617-498b-ac66-e713b58883b3, 2025-08-21 12:40:25.455465+05, 2025-08-21 12:40:25.455496+05, null, 1, 7433d0b8-caeb-4202-bd79-698d65d36a2a, null, 0d6bdb31-e2bb-4a3f-a5da-903be4503462, eae700af-6d51-4182-9334-ba1810d8534e, null, NEW, 3fa0d2dc-9c89-4407-8f19-42876f36fade, d796939d-bb78-4aeb-930b-d7ee70c3906f, uzs, 1000, 2000).
|
||||||
|
|
||||||
|
ERROR 2025-08-21 12:41:09,004 log Internal Server Error: /api/v1/orders/party/create/
|
||||||
|
Traceback (most recent call last):
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 105, in _execute
|
||||||
|
return self.cursor.execute(sql, params)
|
||||||
|
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
|
||||||
|
psycopg2.errors.NotNullViolation: null value in column "date" of relation "orders_order" violates not-null constraint
|
||||||
|
DETAIL: Failing row contains (9421426d-d7bf-4218-8edc-a80334139245, 2025-08-21 12:41:08.831402+05, 2025-08-21 12:41:08.83142+05, null, 1, 7433d0b8-caeb-4202-bd79-698d65d36a2a, null, 0d6bdb31-e2bb-4a3f-a5da-903be4503462, eae700af-6d51-4182-9334-ba1810d8534e, null, NEW, 3fa0d2dc-9c89-4407-8f19-42876f36fade, d796939d-bb78-4aeb-930b-d7ee70c3906f, uzs, 1000, 2000).
|
||||||
|
|
||||||
|
|
||||||
|
The above exception was the direct cause of the following exception:
|
||||||
|
|
||||||
|
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/orders/views/party.py", line 18, in post
|
||||||
|
serializer.save()
|
||||||
|
~~~~~~~~~~~~~~~^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/rest_framework/serializers.py", line 210, in save
|
||||||
|
self.instance = self.create(validated_data)
|
||||||
|
~~~~~~~~~~~^^^^^^^^^^^^^^^^
|
||||||
|
File "/code/core/apps/orders/serializers/party.py", line 48, in create
|
||||||
|
created_orders = Order.objects.bulk_create(orders)
|
||||||
|
File "/usr/local/lib/python3.13/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.13/site-packages/cacheops/query.py", line 367, in bulk_create
|
||||||
|
objs = self._no_monkey.bulk_create(self, objs, *args, **kwargs)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/models/query.py", line 806, in bulk_create
|
||||||
|
returned_columns = self._batched_insert(
|
||||||
|
objs_with_pk,
|
||||||
|
...<4 lines>...
|
||||||
|
unique_fields=unique_fields,
|
||||||
|
)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/models/query.py", line 1896, in _batched_insert
|
||||||
|
self._insert(
|
||||||
|
~~~~~~~~~~~~^
|
||||||
|
item,
|
||||||
|
^^^^^
|
||||||
|
...<5 lines>...
|
||||||
|
returning_fields=self.model._meta.db_returning_fields,
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
)
|
||||||
|
^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/models/query.py", line 1868, in _insert
|
||||||
|
return query.get_compiler(using=using).execute_sql(returning_fields)
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/models/sql/compiler.py", line 1882, in execute_sql
|
||||||
|
cursor.execute(sql, params)
|
||||||
|
~~~~~~~~~~~~~~^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 122, in execute
|
||||||
|
return super().execute(sql, params)
|
||||||
|
~~~~~~~~~~~~~~~^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/cacheops/transaction.py", line 98, in execute
|
||||||
|
result = self._no_monkey.execute(self, sql, params)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 79, in execute
|
||||||
|
return self._execute_with_wrappers(
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
|
||||||
|
sql, params, many=False, executor=self._execute
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
)
|
||||||
|
^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
|
||||||
|
return executor(sql, params, many, context)
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/django/db/backends/utils.py", line 100, in _execute
|
||||||
|
with self.db.wrap_database_errors:
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
File "/usr/local/lib/python3.13/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.13/site-packages/django/db/backends/utils.py", line 105, in _execute
|
||||||
|
return self.cursor.execute(sql, params)
|
||||||
|
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
|
||||||
|
django.db.utils.IntegrityError: null value in column "date" of relation "orders_order" violates not-null constraint
|
||||||
|
DETAIL: Failing row contains (9421426d-d7bf-4218-8edc-a80334139245, 2025-08-21 12:41:08.831402+05, 2025-08-21 12:41:08.83142+05, null, 1, 7433d0b8-caeb-4202-bd79-698d65d36a2a, null, 0d6bdb31-e2bb-4a3f-a5da-903be4503462, eae700af-6d51-4182-9334-ba1810d8534e, null, NEW, 3fa0d2dc-9c89-4407-8f19-42876f36fade, d796939d-bb78-4aeb-930b-d7ee70c3906f, uzs, 1000, 2000).
|
||||||
|
|
||||||
|
ERROR 2025-08-21 14:43:54,767 log Internal Server Error: /api/v1/orders/party/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 "/code/core/apps/orders/views/party.py", line 38, in get
|
||||||
|
return Response(serializer.data, status=200)
|
||||||
|
^^^^^^^^^^^^^^^
|
||||||
|
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/django/db/models/query.py", line 384, in __iter__
|
||||||
|
self._fetch_all()
|
||||||
|
~~~~~~~~~~~~~~~^^
|
||||||
|
File "/usr/local/lib/python3.13/site-packages/rest_framework/views.py", line 132, in force_evaluation
|
||||||
|
raise RuntimeError(
|
||||||
|
...<3 lines>...
|
||||||
|
)
|
||||||
|
RuntimeError: Do not evaluate the `.queryset` attribute directly, as the result will be cached and reused between requests. Use `.all()` or call `.get_queryset()` instead.
|
||||||
|
WARNING 2025-08-21 15:17:52,304 log Bad Request: /api/v1/orders/offer/create/
|
||||||
Reference in New Issue
Block a user