display from_city and to_city on ui

This commit is contained in:
2025-05-27 13:07:23 +03:00
parent e0b705efa6
commit 7915221fc4
5 changed files with 72 additions and 63 deletions

View File

@@ -1,5 +1,5 @@
from rest_framework import serializers
from routes.models import Route, Country
from routes.models import Route, Country, City
from api.main.serializers import RouteSerializer
class SearchRouteSerializer(RouteSerializer):
@@ -7,8 +7,10 @@ class SearchRouteSerializer(RouteSerializer):
username = serializers.SerializerMethodField()
owner_type = serializers.CharField()
from_city_name = serializers.SerializerMethodField('get_start_point')
from_city_russian_name = serializers.SerializerMethodField()
from_country_name = serializers.SerializerMethodField('get_country_from')
to_city_name = serializers.SerializerMethodField('get_end_point')
to_city_russian_name = serializers.SerializerMethodField()
to_country_name = serializers.SerializerMethodField('get_country_to')
formatted_cargo_type = serializers.SerializerMethodField('get_cargo_type')
formatted_transport = serializers.SerializerMethodField('get_moving_type')
@@ -23,11 +25,12 @@ class SearchRouteSerializer(RouteSerializer):
class Meta:
model = Route
fields = (
'id', 'username', 'owner_type', 'from_city_name', 'from_country_name',
'to_city_name', 'to_country_name', 'formatted_cargo_type',
'formatted_transport', 'type_transport', 'userImg', 'comment',
'formatted_departure', 'formatted_arrival', 'country_from_icon',
'country_to_icon'
'id', 'username', 'owner_type',
'from_city_name', 'from_city_russian_name', 'from_country_name',
'to_city_name', 'to_city_russian_name', 'to_country_name',
'formatted_cargo_type', 'formatted_transport', 'type_transport',
'userImg', 'comment', 'formatted_departure', 'formatted_arrival',
'country_from_icon', 'country_to_icon'
)
def get_username(self, obj):
@@ -79,3 +82,17 @@ class SearchRouteSerializer(RouteSerializer):
def get_moving_type(self, obj):
return self.get_formatted_transport(obj)
def get_from_city_russian_name(self, obj):
try:
city = City.objects.get(id=obj.from_city_id)
return city.russian_name or city.name
except City.DoesNotExist:
return None
def get_to_city_russian_name(self, obj):
try:
city = City.objects.get(id=obj.to_city_id)
return city.russian_name or city.name
except City.DoesNotExist:
return None