🚀 Add to Chrome – It’s Free - YouTube Summarizer
Category: N/A
No summary available.
00:00
итак нам с вами осталось рассмотреть один тип связи он называется один к одному и как вы видите по рисунку он позволяет взять две таблички и связать две записи из этих двух таблиц причем он не дает делать дополнительные связи то есть мы конкретно и записи с левой
00:15
таблички связываем с одной конкретной записью из правой таблички и никаких связей больше сделать мы не можем то же самое касается правой то есть мы берём записи с правой таблички связываем только с одной записи с левой таблички и давайте я вам покажу как эту связь организовать в жанр для этого нам
00:32
понадобится ещё одна дополнительная табличка пусть она будет хранить в себе информацию о гримерках соответственно за вас она будет dressing room мы наследуем ся от модус . модов и какую информацию мы можем хранить и а гримерках это например на каком она
00:47
находится этаже в здании это будет у нас целое число и также давайте номер кабинета также давайте возьмем метод стр переопределим пусть у нас будет просто возвращаться
01:03
строка состоящая из номера этажа и через пробел номер кабинета и гримерке у нас будут привязываться к нашим актером и так как мы разбираем связь один к одному значит в одной
01:18
гримерке может быть только один актер и одного актера может быть только одна гримерка и так значит здесь в актере давайте создадим поле dressing и пишем следующим образом ума dolls есть специальный тип поля он называется want one field первым параметром мы говорим с
01:35
какой табличками связываем это dressing room дальше параметр он дарит он обязательный здесь мы давайте поставим следующие значения это будет модель с . set null что делает этот параметр мы с вами
01:52
рассматривали ранее я здесь не буду повторяться и здесь есть также параметр villeret name но его мы с вами при определять не будем почему потому что для связи один к одному django создает название поля полностью совпадающие с
02:08
названием вашей модели то есть в а dressing room будет создана дополнительное поле эктор они vector set как случае свете например один ко многим вот в этом мы с вами скоро увидимся и так как мы с вами поставили он делит равный согнул то мы должны разрешить в
02:26
базе данных сохранять значение null поэтому ставим на утру ну и давайте его щас сделаем необязательным это поле поэтому говорим blink true вот в принципе все связь мы организовали давайте сделаем миграции
02:44
отлично и осталось их применить и давайте перейдем в админку и выведем там наши гримерке переходим в админку обновляем страничку
03:03
вот гримерке нас появились давайте создадим парочку и так этаж у нас будет 1 допустим кабинет равной сотни но еще давайте любой создадим неважно то какие значения будут нас
03:18
лежать и теперь переходим к актерам смотрите джима керри назначаем гримерку под номером 11 сохраняем и теперь переходим кристина был пытаемся назначить ему тоже самую
03:34
гримерку и получаем с вами ошибку мне говорится что актер с такой гримерка ну в нашем случае класс tracing уже существует вот и поэтому автоматически django нам не дает сохранить такую же самую гримерку вот если мы выставляем
03:50
свободную гримерку то никаких ошибок не возникает теперь давайте перейдём в консоль и посмотрим каким полям мы имеем доступ для этого мы запускаем с вами shell plus давайте обращаться гример там
04:06
делаем мы это таким образом вот возьмем например первую гримерку под индексом ноль и положим ее в переменную д смотрите у нас все гримерки заняты и значит я могу обращаться к полю эктор
04:21
вот я уже ранее говорил что django создает связанное поле модели dressing room и связь у нас происходит следующим образом вот наше поле связи актеры с гример кай и так как мы создаем его в классе эктор то название берется
04:39
от этой модель и значит dressing room будет создана поле с названием эктор и вот значит я обращаюсь через это поле и получая актера джима керри и дальше через . я могу получить его допустим first name и так далее то есть доступ ко
04:54
всем его атрибутом вот теперь давайте обратимся к нашим актером и возьмем тома круза положим его в переменный ток и попробуем ему назначить
05:12
новую гримерку а точнее ту гримерку которая уже занята другим актерам она хранится переменной д вот сейчас никаких ошибок нету но если мы попробуем сохранить то мы получим с вами ошибку вот типы и я не constrain и говорится
05:28
что и она возникает потому что django проверяет на уникальность гримерок и у нас сейчас получается ситуация что у двух актеров проставлена одинаковая гримерка соответственно такой ситуации у нас быть не должно вот и что касается поле эктор который возникает у нас
05:45
dressing room его также можно вывести в админку давайте с вами это и сделаем для этого давайте я скопирую вот этот класс из него мы удалим практически все кроме лишь дисплей и
06:01
будем создавать но в админку для класса dressing room значит здесь мы убираем movie здесь мы тоже давайте вместо море напишем dressing room и мы знаем что у dressing room есть floor in омбр
06:16
остальные поля нам не нужны ну и заодно давайте выведем поле эктор и не забудьте закомментировать строчку под номером 10 потому что мы здесь создаем новый админку для этой модели обновляем страничку идем в гримерке и вот здесь
06:35
видим заодно информацию с каким актером закреплена это гримерка и соответственно эта информация будет обновляться если вы измените связи на этом мы с вами заканчиваем изучать этот модуль посвященный типом связей и в качестве домашнего задания поразмыслите на
06:51
следующей задачей вот мы хотим с вами сделать блок то есть сайт где авторы будут размещать свои статьи подумайте какие модели нам необходимо реализовать из каких полейте модели должны состоять и какой тип связей будет между этими моделями ну вот это будет ваше домашнее
07:08
задание но на сегодня у меня все и увидимся с вами в следующем модуле всем пока