diff --git a/backend/api/account/client/views.py b/backend/api/account/client/views.py index b38a206..01de539 100644 --- a/backend/api/account/client/views.py +++ b/backend/api/account/client/views.py @@ -8,12 +8,11 @@ from django.shortcuts import get_object_or_404 from django.core.validators import validate_email from django.core.exceptions import ValidationError from django.db import models -from django.contrib.auth.models import User from api.auth.serializers import UserResponseSerializer from api.models import UserProfile from api.utils.decorators import handle_exceptions -from routes.models import Route, City, Country, Leads +from routes.models import Route, City, Country from sitemanagement.models import Pricing from .serializers import RouteSerializer, CreateRouteSerializer, CitySerializer, CountrySerializer, PlanChangeSerializer, PricingSerializer, LeadSerializer diff --git a/backend/routes/migrations/0006_alter_city_id_alter_country_id_alter_leads_id_and_more.py b/backend/routes/migrations/0006_alter_city_id_alter_country_id_alter_leads_id_and_more.py new file mode 100644 index 0000000..4e8ff1a --- /dev/null +++ b/backend/routes/migrations/0006_alter_city_id_alter_country_id_alter_leads_id_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 5.2.1 on 2025-05-24 12:15 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('routes', '0005_alter_leads_moving_price'), + ] + + operations = [ + migrations.AlterField( + model_name='city', + name='id', + field=models.BigAutoField(primary_key=True, serialize=False), + ), + migrations.AlterField( + model_name='country', + name='id', + field=models.BigAutoField(primary_key=True, serialize=False), + ), + migrations.AlterField( + model_name='leads', + name='id', + field=models.BigAutoField(primary_key=True, serialize=False), + ), + migrations.AlterField( + model_name='route', + name='id', + field=models.BigAutoField(primary_key=True, serialize=False), + ), + ] diff --git a/backend/routes/models.py b/backend/routes/models.py index 0a764c7..54d0d66 100644 --- a/backend/routes/models.py +++ b/backend/routes/models.py @@ -3,6 +3,7 @@ from django.contrib.auth.models import User from routes.constants.routeChoices import owner_type_choices, type_transport_choices, cargo_type_choices class Country(models.Model): + id = models.BigAutoField(primary_key=True) international_name = models.CharField(max_length=250, verbose_name=('Международное название'), blank=True, null=True) official_name = models.CharField(max_length=250, verbose_name=('Официальное название'), blank=True, null=True) @@ -25,13 +26,14 @@ class Country(models.Model): upload_to='uploads/flags/', verbose_name=('Флаг'), null=True, blank=True, help_text=u'') - def __str__(self): + def __str__(self) -> str: if self.international_name: return f'{self.international_name}' elif self.official_name: return f'{self.official_name}' elif self.code: return f'{self.code}' + return super().__str__() class Meta: verbose_name = ('Страна') @@ -40,7 +42,7 @@ class Country(models.Model): class City(models.Model): - + id = models.BigAutoField(primary_key=True) country = models.ForeignKey( Country, verbose_name=('Страна'), related_name='rel_cities_for_country', on_delete=models.CASCADE) @@ -54,7 +56,7 @@ class City(models.Model): parsing_finished_DT = models.DateTimeField(verbose_name=('Дата и время завершения парсинга'), blank=True, null=True) - def __str__(self): + def __str__(self) -> str: return f'{self.name}' class Meta: @@ -63,6 +65,7 @@ class City(models.Model): ordering = ('name',) class Route(models.Model): + id = models.BigAutoField(primary_key=True) owner_type = models.CharField( choices=owner_type_choices, default='customer', verbose_name=('Тип операции')) @@ -102,7 +105,7 @@ class Route(models.Model): blank=True, null=True ) - def __str__(self): + def __str__(self) -> str: from_city_name = self.from_city.name if self.from_city else 'Не указан' to_city_name = self.to_city.name if self.to_city else 'Не указан' return f"Маршрут #{self.id}: {from_city_name} → {to_city_name}" @@ -113,6 +116,7 @@ class Route(models.Model): ordering = ('id',) class Leads(models.Model): + id = models.BigAutoField(primary_key=True) route = models.ForeignKey(Route, verbose_name="Маршрут", on_delete=models.CASCADE) moving_user = models.ForeignKey(User, verbose_name="Перевозчик", on_delete=models.CASCADE) moving_price = models.DecimalField(max_digits=10, decimal_places=2) @@ -125,5 +129,5 @@ class Leads(models.Model): verbose_name_plural = 'Заявки' ordering = ['-created_at'] - def __str__(self): + def __str__(self) -> str: return f"Заявка по маршруту {self.route}" \ No newline at end of file