sender page

This commit is contained in:
2025-05-22 13:28:20 +03:00
parent 5ba9121f33
commit 4182708db7
8 changed files with 409 additions and 72 deletions

View File

@@ -6,6 +6,26 @@ from api.models import UserProfile
from django.shortcuts import get_object_or_404
import pytz
class CountrySerializer(serializers.ModelSerializer):
value = serializers.CharField(source='international_name') # для совместимости с селектом на фронте
label = serializers.SerializerMethodField() # для отображения в селекте
class Meta:
model = Country
fields = ['id', 'value', 'label', 'flag_img_url']
def get_label(self, obj):
return obj.international_name or obj.official_name
class CitySerializer(serializers.ModelSerializer):
value = serializers.CharField(source='name') # для совместимости с селектом
label = serializers.CharField(source='name') # для отображения в селекте
country_name = serializers.CharField(source='country.international_name')
class Meta:
model = City
fields = ['id', 'value', 'label', 'country_name']
class RouteSerializer(serializers.ModelSerializer):
from_city_name = serializers.SerializerMethodField()
to_city_name = serializers.SerializerMethodField()
@@ -160,16 +180,16 @@ class CreateRouteSerializer(serializers.ModelSerializer):
to_city = City.objects.get(name=validated_data.pop('city_to'), country=country_to)
# обновляем номер телефона в профиле пользователя
contact_number = validated_data.pop('contact_number')
phone_number = validated_data.pop('phone_number')
user_profile = get_object_or_404(UserProfile, user=self.context['request'].user)
# проверяем, не используется ли этот номер другим пользователем
if UserProfile.objects.filter(phone_number=contact_number).exclude(user=self.context['request'].user).exists():
if UserProfile.objects.filter(phone_number=phone_number).exclude(user=self.context['request'].user).exists():
raise serializers.ValidationError({
"contact_number": "Этот номер телефона уже используется другим пользователем"
"phone_number": "Этот номер телефона уже используется другим пользователем"
})
user_profile.phone_number = contact_number
user_profile.phone_number = phone_number
user_profile.save()
# создаем маршрут