Преглед садржаја
Када дефинишемо форму у Дјанго Осим тога, говоримо му који ће модел узети и поља која треба приказати, можемо му рећи и какво понашање и коју врсту ХТМЛ ће дефинисати свако поље, знамо да на пример а ЦхарФиелд Требало би да нам покаже унос типа текста, али шта ако желимо да тај унос текста већ долази са класом тако да има понашање према ЦСС или је тај елемент замењен другим елементом.Да бисмо то постигли, имамо видгетс и можемо их дефинисати у време израде класе обрасца у нашој апликацији.
ХТМЛ понашање
Као што смо поменули, Дјанго приказује поља обрасца у ХТМЛ код и за ово ће, у зависности од врсте дефинисаног поља, бити приказан ХТМЛ елемент који се приказује приликом генерисања обрасца, ако желимо додатне функционалности у нашим пољима Дјанго нуди нам видгетс да бисте могли да укључите ове додатне функционалности.
Како се то постиже?Ово је постигнуто јер сваки поље дефинисано у Дјанго -у у облику има атрибут виџета и стога у тренутку инсталације можемо дати вредност наведеном атрибуту и учинити да ради у складу са начином на који то желимо.
Прилагођени виџети
Још један аспект који можемо узети у обзир је да ако видгетс оф ДјангоКао и код типова поља, можемо их прилагодити тако да можемо постићи специфична понашања која одговарају нашој апликацији.
На пример, можемо створити врста виџета који је интегрисан са а Јавасцрипт календар које смо развили или које се посебно траже за нашу форму.
НаслеђивањеЗа прилагођени виџет добити очекиване основне функционалности од којих би требало да наследе Дјанго.формс.видгетс.Видгет међутим ово није обавезно, након што је наслеђено од ове класе, можемо надјачати потребне методе за добијање наше функционалности.
Практична примена
Погледајмо испод пример где ћемо генерисати образац користећи видгетс Да бисмо дефинисали неке аспекте поља, урадићемо ову вежбу у интерактивној конзоли Питхон:
На слици тада видимо да смо у конзоли дефинисали класу обрасца, а унутра смо поставили два поља, па избегавамо инстанцирање из модела, прво поље за које кажемо да је поље ИнтегерФиелд, са овим ће бити потврђено само на бројеве у време слања, али оно што нас занима је друго поље, ово му кажемо да има виџет и да је форме.ТекстареаАко га погледамо, дефинисали смо га као ЦхарФиелд, то нам говори да би у ХТМЛ -у то требао бити унос текста, међутим са видгет Променили смо га, када видимо резултирајући ХТМЛ имамо да је то ХТМЛ текстуално подручје.
Ако желимо дефинишите поље са прилагођеним виџетом Можемо прогласити класу са улазним типом и онда је поставити у образац, да видимо овај код да бисмо разумели:
класа ПерцентагеИнпут (формс.ТектИнпут): деф рендер (селф, наме, валуе, аттрс = Ноне): ретурн '% с %%'% супер (ПерцентагеИнпут, селф) .рендер (наме, валуе, аттрс)
Затим у облику који називамо:
дисцоунт = формс.ИнтегерФиелд (видгет = ПерцентагеИнпут ())
Као што видимо, прилично је лако додати нове врсте видгетс на нашу апликацију.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен