use russian cities names for search params
This commit is contained in:
@@ -22,14 +22,17 @@ class CountrySerializer(serializers.ModelSerializer):
|
||||
return obj.international_name or obj.official_name
|
||||
|
||||
class CitySerializer(serializers.ModelSerializer):
|
||||
value = serializers.CharField(source='name') # для совместимости с селектом
|
||||
label = serializers.CharField(source='name') # для отображения в селекте
|
||||
value = serializers.CharField(source='name') # для совместимости с селектом на фронте (используем английское название)
|
||||
label = serializers.SerializerMethodField() # для отображения в селекте (используем русское название)
|
||||
country_name = serializers.CharField(source='country.international_name')
|
||||
|
||||
class Meta:
|
||||
model = City
|
||||
fields = ['id', 'value', 'label', 'country_name']
|
||||
|
||||
def get_label(self, obj):
|
||||
return obj.russian_name or obj.name # используем русское название если есть, иначе английское
|
||||
|
||||
class RouteSerializer(serializers.ModelSerializer):
|
||||
from_city_name = serializers.SerializerMethodField()
|
||||
to_city_name = serializers.SerializerMethodField()
|
||||
|
||||
@@ -8,6 +8,7 @@ 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.db.models import Q
|
||||
|
||||
from api.auth.serializers import UserResponseSerializer
|
||||
from api.models import UserProfile
|
||||
@@ -133,7 +134,10 @@ class CityView(ViewSet):
|
||||
# поиск по названию города
|
||||
search = request.query_params.get('search')
|
||||
if search:
|
||||
cities = cities.filter(name__icontains=search)
|
||||
cities = cities.filter(
|
||||
Q(name__icontains=search) | # поиск по английскому названию
|
||||
Q(russian_name__icontains=search) # поиск по русскому названию
|
||||
)
|
||||
|
||||
# ограничиваем количество результатов и сортируем по имени
|
||||
cities = cities.order_by('name')[:100]
|
||||
|
||||
Reference in New Issue
Block a user