Django сортировка
Задача отсортировать по совпадению. Есть модель поставщика Retailer с полем city Пример: Поставщик1 имеет city = Москва, а Поставщик2 имеет city = Воронеж и т.п.
Необходимо отсортировать результаты queryset полю city, в начале должны идти те что в городе Москва, потом уже любые другие. Вариант с фильтрацией не подходит хотелось бы именно отсортировать. Прошу помочь.
Ответы (1 шт):
Автор решения: Dima
→ Ссылка
Попробуй с Case/When
from django.db.models import Case, When, Value, IntegerField
Retailer.objects.annotate(
city_order=Case(
When(city="Москва", then=Value(1)),
default=2,
output_field=IntegerField(),
)
).order_by('city_order')