51 Поле choices. Choices field. Курс по Django

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

Category: N/A

Building WordCloud ...

Summary

No summary available.

Transcript

00:00

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

00:16

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

00:33

отображаться в нашей админке или другими словами как будет выглядеть его форма к примеру если мы работаем с целым числом so in jar felt the наше поле отображается в админке вот таким образом у него есть специальные виджеты которые

00:49

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

01:06

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

01:21

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

01:37

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

01:53

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

02:09

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

02:26

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

02:43

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

02:58

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

03:13

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

03:30

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

03:46

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

04:03

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

04:19

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

04:35

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

04:52

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

05:07

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

05:23

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

05:39

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

05:55

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

06:11

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

06:26

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

06:43

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

07:00

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

07:15

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

07:30

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

07:46

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

08:03

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

08:19

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

08:34

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

08:49

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

09:05

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

09:22

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