Как заказать набор запросов Django, когда нужно только одно наблюдение в конце? - PullRequest
1 голос
/ 19 октября 2019

У меня есть наблюдение «Другое», которое я хочу получить в конце набора запросов других объектов. Тем не менее, если я закажу это в алфавитном порядке или любым другим способом, «Другое» приходит в середине. Как мне сделать «Другое» последним?

Queryset.objects.order_by('-names_of_objects')

"sdnlks", "dklnldsk", "Other", "dfsdno", "cdksnodi", "cjsdkc"

Вместо этого я хочу:

"sdnlks", "dklnldsk", "dfsdno", "cdksnodi", "cjsdkc", "Other"

Меня не волнует порядок других объектов.

1 Ответ

1 голос
/ 19 октября 2019

Вы можете использовать метод extra с аргументом select, который задает необработанное выражение SQL в качестве дополнительного поля для заказа:

Queryset.objects.extra(select={'is_other': "names_of_objects = 'Other'"}, order_by=['is_other'])
...