42 Сортировка QuerySet. Order by. Курс по Django 4

🚀 Add to Chrome – It’s Free - YouTube Summarizer

Category: N/A

Building WordCloud ...

Summary

No summary available.

Transcript

00:00

сегодня давайте с вами поговорим о сортировка потому что мы иногда хотим видеть все наши записи в каком-то упорядоченном виде мы можем упорядочить принципе по любому полю и давайте покажу как это сделать для этого мы идем в наш views вот здесь мы получаем все записи и

00:17

мы вместо он можем вызвать метод ордер buy ему так раз нужно передать поле по которому мы будем сортировать и так давайте начнем с ней мы перезапускаем страничку и смотрите они все отсортированы в алфавитном порядке

00:34

если мы с вами перед ней мы поставим минус соответственно сортировка будет выполняться в противоположном порядке то есть от последней буквы до первой буквы то же самое будет происходить и с другими полями например если мы с вами

00:49

напишем здесь рейтинг и минус оставим то вверху у нас будет наивысший рейтинг а внизу самый маленький и если например перед вами стоит задача найти топ самых популярных фильмов то первым делом вы сортируете таким же образом по рейтингу

01:06

и потом просто берете срез в данном случае нам нужно взять 1 5 фильмов обновляем страничку и вот видим список из топ-5 и соответственно эта цифра здесь может меняться вы можете топ-250 сделать и так далее теперь в ордер buy

01:23

вы можете указывать несколько полей давайте например укажем рейтинг и бюджет но нашей страничке сейчас не выводятся бюджет давайте его тоже добавим для этого мы идем в наш шаблон смотрите

01:39

все отступы которые де сделаю или переносы внутри тега li вышить имели они ничего не значит то есть html их просто игнорирует и мы можем начать вот здесь чуть ниже давайте скопируем эту строчку в одессе я поставлю запятую и вот здесь

01:56

мы значит пишем бюджет равен его здесь значение подставляем из-за колонки бюджет обновляем страничку и вот видим наше значение теперь давайте поговорим как у нас выполнилась сортировка и так

02:12

смотрите она здесь двойная и в первую очередь будет сортироваться по рейтингу и в случае если у нескольких записей рейтинг будет одинаковый то тогда уже в бой вступает бюджет то есть пределах одинакового рейтинга записи будут

02:27

располагаться по бюджету давайте найдем такие записи у которых рейтинг одинаков смотрите у нас есть вот рейтинг 80 но не бюджет совпал есть рейтинг 83 вот обратите внимание вначале идет 600000 потом миллион если я здесь бюджету

02:44

поставлю знак минус смотрите у нас вот эти строчки изменится все остальные останутся в том же порядке то есть еще раз повторюсь здесь два этапы сортировки вот эта самая главная сортировка и в случае если рейтинг совпадает то только между вот этими записями будет уже

03:01

дальше сортироваться по бюджету в сторону убывания значит если перед колонкой нету минуса сортировка идет по возрастанию если минус стоит то по убыванию если мы с вами вот эти поля поменяем местами то у нас будет в первую очередь

03:16

сортироваться по бюджету и затем если у некоторых записи он совпадает то будет уже сортироваться по рейтингу давайте вот у этой записи изменим рейтинг тоже сделаем его 83 это фильм у нас был криминальное чтиво значит здесь я ставлю

03:32

83 и обязательно нажимаю записать обновляем и смотрите вот они три записи и значение здесь располагается по убыванию если я минус убираю

03:49

то вот эти три записи уже будут располагаться в порядке возрастания по бюджет если мы здесь минус добавим то теперь у нас по рейтингу будет располагаться в сторону убывания но опять же у тех кого одинаковый рейтинг

04:04

они уже будут располагаться по возрастанию бюджета и теперь нам осталось с вами поговорить вот о таких полях где ей значение null null это специальный тип данных мы уже несколько раз его упоминать но идея такая что ну нельзя сравнивать с числами и другими

04:21

объектами то есть любое сравнение ну с числом или строкой всегда будет иметь результат null поэтому давайте посмотрим что будет происходить при сортировке с этими значениями в одессе сортировку можно отключить вот при помощи вот этой кнопки и так значит здесь мы с вами

04:37

оставим только год бюджет давайте уберем обновим страничку и смотрите вот у нас располагается в середине выровнять я эти записи не могу поэтому давайте год расположен в самом

04:54

конце чтобы удобнее было на него смотреть не так обновляем и обратите внимание там где есть ну эти записи стоять впереди давайте я поставлю минус обновляем и

05:11

при такой сортировки то есть по убыванию у нас значению перемещаются вниз но на самом деле на расположение вот этих значений с новым можно влиять можно указывать где конкретно вы хотите видеть впереди или позади

05:26

но для этого в джанки нужно немножко исхитриться мы должны из-за беби бон dolls импортировать новые для нас объект f вот мы знакомились с это f и так и здесь мы смотрите то же самое обворачиваем в.ф.

05:44

объект наше поле по которым мы хотим отсортировать и дальше мы у этого объекта можем вызывать различные свойства так как мы используем сортировку то нам интересно либо ask это значит по возрастанию либо диск это был

06:01

убывание давайте мы возьмем по убыванию у нас сейчас как раз такая сортировка и здесь мы передаем такой аргумент логический как ну лс last и ставим его значение true вот сейчас у нас будет та же самая

06:17

сортировка смотрите я обновляю получаю ошибку потому что здесь буква а забыл да и здесь мы уже должны не указывать минус извините вот у нас по убыванию записи

06:33

неизвестен внизу если мы передаем здесь но us first и обновляем страничку то смотрите они уже появляются впереди и дальше уже идет сортировка по убыванию и давайте теперь по возрастанию сортировку применим пишем

06:50

здесь ask обновляем страничку смотрите впереди у нас идут неизвестны а уже затем по возрастанию записи располагаются ставим здесь значение ноуз last в true и неизвестно у нас теперь упадут вниз

07:07

ну и конечно же мы можем здесь использовать двойную или тройную сортировку например давайте еще отсортируем по рейтингу вот здесь вот значит я после вот этого объекта и of могу просто дописать рейтинг у

07:23

нас сейчас принципе ничего не изменится потому что мы сортируем по возрастанию а вот если я поставлю минус то значение 83 вот в этой группе из трех элементов переместится вверх

07:38

вот видите давайте вот рикса мы поставим 82 записываем обновляем и вот видите tricks уже здесь выбираем минус обновляем вот они от сортировались ну

07:55

вот казалось бы простая тема но все-таки есть небольшие нюансы и их нужно учитывать на сегодня давайте мы тогда с вами завершим занятия и увидимся в следующем видео всем пока