🚀 Add to Chrome – It’s Free - YouTube Summarizer
Category: N/A
No summary available.
00:00
ну что ж давайте посмотрим правильные ли вы определили тип связи между режиссером и фильму на самом деле здесь можно ответить правильно двумя способами смотрите очень часто у фильма существует один режиссер поэтому здесь связь один-ко-многим то есть у одного фильма
00:16
один режиссер и один режиссер может снять много фильмов но бывают и такие ситуации когда одного фильма есть несколько режиссеров соответственно это попадают под ситуацию многие ко многим то есть один режиссер может снять несколько фильмов и одного фильма может
00:33
быть несколько режиссеров но давайте мы из этих двух вариантов выберем один ко многим то есть мы реализуем именно эту связь по термина ходим нашей модели вот модель директора вот модель movie и мы должны привязать директора к фильмам для
00:50
этого мы создаем новое поле его можно так и назвать директор и определяться она будет следующим образом это специальное поле которая называется фаренгейт то есть внешний ключ и мы внешний ключ делаем на табличку директор
01:05
вот таким образом делается связь один-ко-многим и мы должны передать еще один обязательный параметр он давит этот параметр может принимать 7 значений судя по документации но мы разберём только три из них первый называется протектор
01:20
вот здесь не забудьте убрать вызов то есть протектор просто пишется дальше без скобок что обозначает protected вы уже скоро увидите в админке теперь так как мы создали с вами новые поля делаем миграцию django нам сообщают что для существующих
01:37
записей нам нужно проставить назначение дефолтное поэтому давайте выберем второй вариант и не забудем про ставить значение null труб для возможности сохранения пустых значений вновь выполняя миграции вот они
01:53
создались и применяемых отлично и вот это поле директор давайте выведем в админке вместо валюты для таблички movie перед запускаем нашу админку идем фильмы и
02:09
смотрите у нас появляется колонка и она состоит из combobox и и в этом combobox и мы выбираем одно из нескольких значений и эти все значения представляют собой записи из таблички movie то есть
02:24
вы видите там было четыре режиссера давайте добавим еще одного например кристофер нолан ну и давайте заведем ему почту сохраняем вот у нас уже 5 записей и теперь фильмах
02:41
в этом комбо боксе у нас уже одно из пяти значений давайте просто им нашим фильмом разных режиссеров так чтобы некоторые из них повторялось смотрите при попытке сохранения мы увидим с вами ошибку о том что эта
02:58
боль у нас обязательно потому что мы не просто вели атрибут blank трубу поэтому нам нужно сейчас полностью для всех записей проставить режиссеров ну вот нажимаем сохранить и вот у нас
03:14
информация сохранена мы также можем перейти к какой-то конкретной записи допустим переходим в к ночному рыцарю и вот здесь также видим этот combobox мы здесь также можем выбрать режиссера нажать сохранить и для темного рыцаря новое значение в табличке проставиться
03:31
вот обратите внимание у нас теперь здесь кристофер нолан и вы видите что для одного конкретного фильма мы из-за этого всего множества режиссеров выбираем только одну запись но при этом у одного режиссера может быть несколько фильмов и вот здесь как раз вступает в бой
03:48
свойства которые мы проставили он делит от сейчас она значение протектор смотрите на что она влияет вот например у гая ричи есть четыре фильма если я попытаюсь удалить гай ричи то есть запись об этом режиссере для этого я
04:04
выбираю ее среди действия выбирая удалить нажимаем выполнить то при режиме protected мы с вами получим сообщение что директора то есть режиссеры удалить не получится потому что эта запись связано с четырьмя фильмами и значит режим protected не позволяет нам
04:22
удалить режиссера в том случае когда у него есть дочерние записи то есть тогда как у него есть фильмы вот например давайте выберем режиссером у которого нет записей вот например джеймс кэмерон но встречается только в одном фильме давайте сменим иванова диолла на
04:39
сохраним значит теперь фильмов с этим режиссером не осталось и попробуем его удалить выбираем нажимаем удалить выбранные режиссеры и вот теперь у нас появляется возможность удаления видите красная кнопка мы подтверждаем это
04:54
действие и соответственно запись о я там режиссере из нашей базы данных удаляется при этом ни один фильм не пострадал видите все фильмы здесь присутствует помимо protected у нас есть с вами и другие варианты следующие например называется к скейт
05:10
давайте выполним миграции чтобы они применились значит мэйк ми грешен и потом играет отлично обновим нашу обминку когда вы связываете при помощи cask вида
05:26
при попытке удаления режиссера вам выставиться соответствующие дочерние записи то есть смотрите мы будем удалять главный записи режиссера и также нам предложит удалить все фильмы которые с ним связаны и конечно же когда вы
05:42
нажмете дале уверен удалиться одна запись из таблички режиссеров и одна запись из таблички фильмов если бы мы с вами выбрали допустим вуди аллена то мы бы удалили три фильма который он
05:58
снял и соответственно самую информацию о режиссёре но вот я удалять не буду поэтому можем вернуться обратно и разберём ещё один вариант называется сад ну как вы понимаете по переводу при таком
06:14
варианте у нас записи в режиссере удалиться но фильмах про ставятся значение null в поле режиссера давайте попробуем итак я обновил удаляя вуди аллена у него
06:29
было несколько фильмов обратите внимание нам предлагают удалить только запись из режиссеров да я уверен и идемте посмотрим что у нас фильмах и вот видим что у трех фильмов значения
06:45
null проставлена вот так работает set null среди этих вариантов связи наиболее часто используемые the cask рейд или protected ну вот давайте оставим к скейт соответственно опять же сделай миграция и применим их ну вот давайте так и
07:03
оставим с вами и теперь подумайте в качестве домашнего задания о следующем нам нужно сохранять актеров для наших фильмов соответственно нужно будет создать новую табличку акте веры и привязать записи актеров к фильмам и ваша задача подумать
07:20
над тем какому типу связи будет относиться ситуация фильмы и актеры это будет связь один к одному 1 ко многим или многие ко многим ну вот подумайте над этим и на следующем уроке разберём с вами эту ситуацию