Turinys
Kai apibrėžiame formą Django Be to, mes pasakome, kokį modelį jis ketina naudoti ir laukus, kuriuos jis turėtų parodyti, taip pat galime pasakyti, koks elgesys ir kokio tipo HTML nustatys kiekvieną lauką, žinome, kad, pavyzdžiui, a „CharField“ Tai turėtų parodyti mums teksto tipo įvestį, bet ką daryti, jei norime, kad šis teksto tipo įvestis jau būtų įtraukta į klasę, kad ji veiktų CSS arba tas elementas pakeičiamas kitu elementu.Norėdami tai pasiekti, turime valdikliai ir mes galime juos apibrėžti, kai mūsų paraiškoje yra formų klasė.
HTML elgesys
Kaip minėjome, Django rodomi formos laukai HTML kodas ir tam, priklausomai nuo apibrėžto lauko tipo, kuriant formą bus rodomas HTML elementas, jei norime papildomų funkcijų savo laukuose Django siūlo mums valdikliai kad būtų galima įtraukti šias papildomas funkcijas.
Kaip tai pasiekiama?Tai pasiekiama, nes kiekvienas lauke „Django“ apibrėžtas laukas turi valdiklio atributą ir todėl jos įkūnijimo momentu mes galime suteikti minėtai atributui vertę ir priversti ją veikti taip, kaip mes to norime.
Tinkinti valdikliai
Kitas aspektas, į kurį galime atsižvelgti, yra tas, kad jei valdikliai apie DjangoKaip ir lauko tipus, mes galime juos pritaikyti, kad galėtume pasiekti konkretų elgesį, atitinkantį mūsų programą.
Pavyzdžiui, galime sukurti a valdiklio tipas kuris yra integruotas su „Javascript“ kalendorius kuriuos sukūrėme arba kurie yra specialiai prašomi mūsų formai.
PaveldėjimasDėl pasirinktinis valdiklis gauti tikimasi pagrindinių funkcijų, kurias turėtų paveldėti Django.forms.widgets.Widget tačiau tai nėra privaloma, kai ji bus paveldėta iš šios klasės, mes galime nepaisyti būtinų metodų, kad galėtume gauti savo funkcionalumą.
Praktinis pritaikymas
Žemiau pamatysime pavyzdį, kuriame sukursime formą naudodami valdikliai Norėdami apibrėžti kai kuriuos laukų aspektus, atliksime šį pratimą interaktyvioje konsolėje Python:
Jei norime apibrėžkite lauką naudodami pasirinktinį valdiklį Mes galime deklaruoti klasę su įvesties tipu ir įdėti ją į formą, pažiūrėkime šį kodą, kad suprastume:
class PercentageInput (forms.TextInput): def render (self, name, value, attrs = None): return '% s %%'% super (PercentageInput, self) .render (vardas, vertė, attrs)
Tada tokia forma, kurią mes vadiname:
nuolaida = formos.IntegerField (valdiklis = PercentageInput ())
Kaip matome, pridėti naujų tipų yra gana paprasta valdikliai į mūsų paraišką.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką