Step 4 (S-44796)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/14830/step/4

Step 4 (S-44796) 1.png

[00:00 - 00:16] так объекта представляет собой некоторое запросы к базе данных но как мы видели чтобы создать нефти queryset мы обращаемся специальное поле модели post с точка абзац


[00:16 - 00:34] а что это такое это поле model менеджер а давайте поговорим про такие класса а django мол зачем они нужны а может у менеджеров


Step 4 (S-44796) 2.png

[00:34 - 00:53] а специальный промежуточный класс а для каждой модели создается а свой объект модуль model менеджера с для каждого класса модель создает свой объект модуль а и в моду менеджере содержатся метода для


[00:53 - 01:09] работа с группой объект то есть если те методы которые вы описываете в самой модели они для работы с 1 объектом а то model management помещаются а методы для работы с набором объектов


[01:09 - 01:26] а есть model management умолчанию все его метод ну практически все совпадает с queryset то есть никакого дополнительного функционала особо не несет и нужен в основном для того чтобы создавать


[01:26 - 01:46] объекты связанные а с конкретной моделью методом фактически навстречу отказались от немножко другое но не совпадают а вот как выглядят использования model менеджера по умолчанию


Step 4 (S-44796) 3.png

[01:46 - 02:05] класс модели а никаких дополнительных записи не делаем тем не менее у этого кваса создается свойства обжиг от свойства учится а класса модели это экземпляр


[02:05 - 02:22] model менеджер соответственно а можно у менеджера можно вызывать а фактически все те же самые методы что вы reset и в общем то он создает объект кориса отделов то что


[02:22 - 02:37] а вот есть специальное поле для указания того из какой таблицы идет выборка вот когда создается с помощью менеджера это поле


[02:37 - 02:56] проставляется в таблицу соответствующая текущей модели еще раз повторю другими словами а когда вы создаете queryset с использованием model менеджеру некоторые модели это такой reset он будет соответствовать данной модели то есть будет проводить выборку из ее таблиц


[02:56 - 03:15] итого точка обжиг это объект воду manager а любой вызов который вы делаете например точка all либо точка фильтр order by фактически вам вернется уже queryset для работы с данной таблице


[03:15 - 03:32] умолчанию но помимо того что есть model management умолчанию хороший правильный практикой осуществляется создание своих model менеджеров а


Step 4 (S-44796) 4.png

[03:32 - 03:51] как правило для каждого класса модели имеет смысл создать ну за исключением самых простых моделей имеет смысл создать свой класс model management как это делается создается новый класс этот класс наследуется от models точка менеджеров


[03:51 - 04:10] и а при описании модели вот описывается модель вы указываете новое поле ужас и с а вот к примеру своего post model менеджер


[04:10 - 04:28] данном случае вы ставите экземпляру post post а имя с которым вы запишете класс модель оно в принципе ничем не ограничена то есть вы можете записать а как


[04:28 - 04:43] тогда вы будете обращаться к его методом как post точка options либо можете записать его под другим именем например а в классе модели написать


[04:43 - 05:02] custom равняется там post менеджер сказала будете обращаться к post точка custom в чем смысл своих а смысл в том что


[05:02 - 05:19] своих менеджеров можно описать дополнительные методы для работы с набором объектов например вас есть сложные какие то выборке из таблицы таблица с постами


[05:19 - 05:37] вы можете этим выбором дать имя например выборка лучшие посты то есть он в принципе вы могли бы вот это условие написать там где вы хотите его выбрать но а таким образом теряется понятия


[05:37 - 05:53] ушел поста когда вы формулируете это видео методов а менеджер у вас появляется концепция лучших постов а вашей модели да и вы можете этот метод использовать в разных частях кода


[05:53 - 06:11] без дублирования от каким образом мир вызвать best post это делается так post точка лужицы бест


[06:11 - 06:29] post помимо выборок то есть после и published а это фактически кори сайты которые вы


[06:29 - 06:44] оформили из сходили в виде методов своем а model management помимо таких выборок вы можете создавать методы которые создают данный пример этот крем


[06:44 - 07:00] в отличие от стандартного метода который создает новый пост а этот метод создает так называемый черновик но если у вас есть понятие черновика в вашей модели данных о создает post но при этом его ставят специальный флажок дров


[07:00 - 07:18] например возможно там вставлять такие таймстемп либо делает что то еще а использовал своих моду менеджеров это очень хорошая практика это позволяет помещать весь код


[07:18 - 07:36] внутр модель это важно а помимо а то что мы сейчас рассмотрели это обычный менеджера которые соответствуют со мной модель когда модель создается


Step 4 (S-44796) 5.png

[07:36 - 07:55] связь многие ко многим то есть мы не тумане field а создается новый новый объект менеджеров только а в данном случае это не буду менеджера а менеджер


[07:55 - 08:11] а этот менеджер install также расширять функционал но только запросы строится не просто к данной таблице а все запросы которые будут построены с использованием


[08:11 - 08:28] этого менеджера они будут включенным условием на данный объект сейчас объясню допустим у нас есть такая какая модель в ней есть связь многие ко многим поле many to many мы получаем


[08:28 - 08:45] экземпляр записей экземпляр поста и далее свойства текст это будет объект related этого поля вы можете выбирать вызывать методы


[08:45 - 09:04] которые можно назвать например этот аккаунт то есть вы можете написать 1 текст точка com фактически этот метод посчитает количество тегов но а


[09:04 - 09:19] поскольку это необычный мод менеджер а related он посчитает количество тегов связанных с конкретным объектом post то есть а условия то что


[09:19 - 09:36] так должен быть связан с конкретным объектом post оно подставляется автоматически а кроме того в related менеджер а существуют некоторые дополнительные методы для изменения набор данных связанных


Step 4 (S-44796) 6.png

[09:36 - 09:52] например этот крем а он а этот менеджер будет создавать новый тег но этот новый то будет уже связан с текущим постов а метод at будет добавлять


[09:52 - 10:09] существующий трек к данному посту то есть фактически мы говорили что связь делается через промежуточную таблицу будет добавлять запись промежуточную таблицу метод remove удаляет а некоторые существующие тег


[10:09 - 10:22] из этого списка тегов в данном посте метод clear полностью очищают а список тегов у данного поста а такого функционала в этот менеджер