diff --git a/core/apps/orders/migrations/0003_order_order_number.py b/core/apps/orders/migrations/0003_order_order_number.py new file mode 100644 index 0000000..c7920db --- /dev/null +++ b/core/apps/orders/migrations/0003_order_order_number.py @@ -0,0 +1,18 @@ +# Generated by Django 5.2 on 2025-08-27 14:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('orders', '0002_order_location_en_order_location_ru_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='order', + name='order_number', + field=models.PositiveBigIntegerField(default=1), + ), + ] diff --git a/core/apps/orders/models.py b/core/apps/orders/models.py index 552cf57..d2a60ba 100644 --- a/core/apps/orders/models.py +++ b/core/apps/orders/models.py @@ -12,6 +12,7 @@ class Order(BaseModel): ('Yetkazib berilgan', 'Yetkazib berilgan') ) + order_number = models.PositiveBigIntegerField(default=1) user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='orders') name = models.CharField(max_length=200) date = models.DateField() @@ -20,10 +21,21 @@ class Order(BaseModel): total_price = models.PositiveBigIntegerField() is_paid = models.BooleanField(default=False) location = models.CharField(max_length=200) + location_to = models.CharField(max_length=200, null=True) + location_from = models.CharField(max_length=200, null=True) def __str__(self): return f'{self.user} user order {self.name}' + def save(self, *args, **kwargs): + if not self.order_number: + last_order = Order.objects.all().order_by('-order_number').first() + if last_order: + self.order_number = last_order.order_number + 1 + else: + self.order_number = 1 + super().save(*args, **kwargs) + class Meta: verbose_name = 'Buyurtma' verbose_name_plural = 'buyurtmalar' diff --git a/core/apps/orders/serializers.py b/core/apps/orders/serializers.py index 7acd87e..f6fa166 100644 --- a/core/apps/orders/serializers.py +++ b/core/apps/orders/serializers.py @@ -7,5 +7,6 @@ class OrderListSerializer(serializers.ModelSerializer): class Meta: model = Order fields = [ - 'id', 'name', 'date', 'status', 'size', 'total_price', 'is_paid', 'location' + 'id', 'name', 'date', 'status', 'size', 'total_price', 'is_paid', 'location', 'location_to', + 'location_from' ] \ No newline at end of file diff --git a/core/apps/orders/translation.py b/core/apps/orders/translation.py index 56b8e69..4b20f9c 100644 --- a/core/apps/orders/translation.py +++ b/core/apps/orders/translation.py @@ -6,5 +6,5 @@ from core.apps.orders.models import Order @translator.register(Order) class OrderTranslation(translator.TranslationOptions): fields = [ - 'name', 'location' + 'name', 'location', 'location_to', 'location_from' ] \ No newline at end of file