🚀 Add to Chrome – It’s Free - YouTube Summarizer
Category: N/A
No summary available.
00:00
на предыдущем уроке мы с вами добавили поисковую панель и она теперь нам помогает среди множества наших данных находить нужные нам а сегодня мы с вами продолжим изучать возможности который нам предоставляет django в поиске информации и мы изучим фильтрацию для
00:16
этого в по charme в нашем классе movie админ мы добавляем новый атрибут он называется list фильтр это тоже коллекция в данном случае список и здесь мы указываем название полей по которым хотим фильтроваться давайте посмотрим что будет если мы
00:32
выведем name ну так же возьмем рейтинг и кэрнсе то есть наша валюта перезапускаем нашу страничку давайте поисковый запрос уберем и мы уже видим с вами справа появляется вот зоны
00:47
фильтрации и она состоит из нескольких секций первое это имя и здесь показывается множество всех имен которые у нас присутствует фильмах вот мы например нажимаем по аватару и среди наших запись останется только один
01:03
единственный вотар вы также можете сбросить все фильтры и в записи вновь появится смотрите среди рейтинга нам показывается множество всех чисел которые у нас присутствие в рейтинге то есть они здесь показаны без повторений вот например мы видим что 85 встречается
01:20
два раза нажимаем по этой ссылочке и увидим так раз 2 записи и также внизу мы с вами видим нашей валюты их всего три нажимаем доллары видим 0 объектов но все записи практически содержат в
01:36
евро давайте попробуем изменить кого-то на рубли и одну запись на доллары так для нашего разнообразия ну вот теперь доллара мы находим одну запись в рублях мы находим видеозаписи отлично но данные фильтрация например по числам
01:54
не очень удобно потому что в этом списке может оказаться очень много чисел представляете у нас рейтинг варьируется от 1 до 100 соответственно это будет занимать очень много места вот и мы бы хотели по рейтинговой фильтроваться в зависимости от значения допустим мы хотим все фильмы разделить на категорию
02:11
низкого рейтинга среднего рейтинга высокого и там например высочайшего и мы сами определяем например что низкий рейтинг это от 0 до 40 баллов средний допустим от 40 до 60 и так далее и вот мы хотели бы видеть только вот эти категории
02:27
рейтинга и для этого нужно будет создать свой собственный фильтр и мы конечно же с вами этим сейчас займемся для этого вам понадобится создать новый класс вне movie админ мы этому классу даем какое-то осмысленное название раз у нас
02:43
в фильтр будет по рейтингу то я его так и назовем в рейтинг фильтр мы наследуем ся обязательно от админ и здесь берем глаз simple лишь фильтр и это обязательное условие для того чтобы наш фильтр сработал смотрите здесь мы должны переопределить с вами два метода
03:00
первый называется лук abs и он нам сразу подсказывает какие аргументы он принимает вот это cells request и модал админ эти параметры мы с вами использовать не будем мы всего лишь навсего вернем список значений
03:16
которые мы хотим видеть в нашем фильтр давайте поясним эти значения будут высвечиваться вот в этом месте то есть по сути это список из вариантов которые мы с вами можем выбрать так вот это у нас будет список из кортежей в картере будет два значения смотрите меньше 40
03:33
это само значение и рядом я пишу строкой текст который будет соответствовать это значение то есть это у нас будет рейтинг низкий вот это у нас будет первый параметр который мы хотим видеть в нашем фильтре дублируем несколько раз эту
03:49
строчку затем у нас будет средний высокий и давайте высочайшей здесь мы напишем от 40 до 59 давайте продублируем
04:04
здесь у нас будет от 60 до 79 и соответственно здесь больше или равна 80 повторюсь здесь мы указываем критерия и совсем уже скоро вы увидите на что влияет эти значения следующий метод
04:21
который мы с вами переопределяем он называется каире set вот такие значили не он принимает и вот это переменный кури сет ее тип опять же к were set который мы с вами знакомились на предыдущем уроке то есть эта коллекция наших записей относящиеся
04:39
к модели movie но в отличие от поиска в этом кавере среди содержится все фильмы которые находятся в нашей модель напоминая в поиске нам приходили в каире сет только выбранные и в этом методе давайте мы просто пока с вами вернем весь наш к вырезать то есть
04:55
все записи из нашей модели ну вот и этот рейтинг мы с вами должны обязательно прописать теперь в нашем списке лишь фильтр вот этот рейтинг мы обязательно тоже давайте с вами уберем фильтроваться мы бы не мы уже не будем и через запятой
05:11
указываем название нашего класса давайте перейдем браузер и получаем с вами такую ошибку в ошибке говорится что наш класс рейтинг фильтр обязательно у него должен быть прописан тайтл давайте скопируем и пропишем тайтлы то соответственно то как будет
05:28
наш фильтр выглядеть давайте назовем его фильтр по рейтингу отлично обновляем страничку получаем на их ошибку она очень плохо уважая и мне говорится что мы с вами не задали параметр ный ну что же давайте
05:44
тоже зададим это будет атрибут внутри нашего класса и давайте я покажу запишу здесь любое значение чтобы вы могли увидеть на что влияет этот параметр ный и так обновляем страничку еще раз и вот отлично у нас админка грузится никаких
06:01
ошибок нет и вот внизу мы с вами видим наш фильтр здесь как раз перечисляется те наши критерии которые мы указывали и теперь обратите внимание как изменится наш юрий когда я нажму на низкий смотрите подставляется название нашего
06:18
параметра мы прописали его вот здесь вот и затем подставляется значение фильтра она у низкого прописывается в здесь кортежа если я нажму на средний qwerty у нас остается как параметр name он у нас не изменяется а вот изменится
06:35
само значение фильтра от 40 до 59 и вот так у нас с вами меняется наш юрий при этом список наших записей остается прежним и нам с вами нужно это поправить но мы начнем с того что параметр name
06:50
давайте все-таки напишем более понятную записи это рейтинг мы фильтруем ся по рейтингу и теперь у нас будет с вами подставляться соответственно вот сюда параметр рейтинг вот смотрите рейтинг меньше 40
07:08
вот рейтинг от 40 до 59 и и так далее теперь давайте поставим . снова вот здесь в нашем говорите и обновим страничку вот мы здесь останавливаемся смотрите у нас доступен кого рисует это
07:24
все наши 8 записей request мы с ним уже знакомы и вот сел это экземпляр класса рейтинг фильтр вот внутреннего the grass видны вот эти наши записи которые мы с вами выбирали и смотрите давайте откроем
07:39
калькулятор я могу сделать следующее kcell обратиться ко мне туда в или это не атрибута метод его поэтому нужно вызвать выполняем строчку и вот сел в . выльем хранится значение фильтра который на
07:55
передается то есть это значение вот из этого списка внутри картриджа на первом месте которой находится и значит по вот этому вылью мы с вами можем догадаться что нам пришло на вход и так и значит здесь я могу проверить если сэлфи ли
08:10
равняется значение меньше 40 причем я это пишу вот такой строкой то мы с вами будем возвращать к were set который фильтруется по полю рейтинг и дальше вспоминаем о р м мы должны здесь
08:27
прописать меньше чем 40 это будет лсд и ставим значение 40 выбираем точку останова отпускаем нашу программу давайте обновим страничку выбираем низкий и смотрите среди наших объектов ни одной
08:45
записи не оказалось давайте вернем все наши записи и у кого-то из фильма сделаем реально низкий рейтинг например 20 и здесь запишем 10 нажимаем сохранить и фильтруем ся по низкому рейтинга и вот
09:01
получаем с вами так раз 2 записи далее чтобы обработать ситуация среднего рейтинга значит мы делаем аналогичным образом здесь мы проверяем уже на эту строку и фильтроваться мы соответственно должны от борщ равна 40 это значит мы пишем gt
09:19
и great zen-o эквол значит это больше равна 40 и можно сделать двойной фильтрации мы опять же фильтруем ся и уже говорим что второе условие у нас должна быть меньше 60 ну вот числа от 40 включительно до 60 не
09:37
включительно давайте обновим страничку нажимаем средний и у нас попадает один фильм из всех возможных с рейтингом 56 вот например можем здесь понизить этот рейтинг до скажем 60 обязательно
09:54
сохраните запись вот 60 у нас не должно попасть в средний рейтинг потому что 60 и это граничащие значение но вот если мы сделаем из него 59 то оно уже должно попадать сюда
10:10
ну вот отлично и уже попробуйте самостоятельно обработать ситуации с высоким и высочайшим рейтингом или также вы можете добавить свои дополнительные критерии на другие поля но на сегодня у меня все и увидимся с вами в следующем уроке всем пока