Django - MultiWidget

Cuprins
Vorbind despre widgeturi, trebuie să știm că acestea sunt o punte între Cod HTML și câmpurile de Django; Acestea au mult de-a face cu modul în care vom controla comportamentul HTML în formularele noastre și, prin urmare, în aplicația noastră.
Acesta este controlul, încât putem aplica unele tehnici de programare în care ne vom permite să stocăm și să procesăm date a diferitelor widgeturi și dă-le la Django de parcă ar fi date dintr-o singură sursă.
Împărțiți datele între mai multe widgeturi
Funcționarea acestui lucru poate fi realizată folosind metoda render () din widget, atunci putem avea un câmp și atunci când îl procesăm îl împărțim în mai multe intrări HTML, fiecare conținând o bucată din valoarea pe care trebuie să o stocăm.
ExempluUn exemplu poate fi câmpul Datetime, acesta ar putea fi împărțit într-un câmp care captează doar data și un alt care captează ora, dar când este stocat în Bază de date Ar trebui să ni se alăture și, în acest fel, avem un câmp complet, dar în partea utilizatorului este împărțit.
MultiWidget
Ca exemplu pe care l-am indicat anterior, este ceva destul de plictisitor, deoarece ar trebui să avem grijă să scriem prea multe rutine și metode care ne ajută cu validarea, în Django Acest lucru a fost deja gândit și avem utilități care fac o mare parte din această muncă pentru noi.
MultiValueFieldPe partea câmpurilor pe care o avem MultiValueField care ne ajută cu validarea datelor, curățarea acestora și compararea cu fiecare dintre câmpurile care alcătuiesc compusul; Singurul lucru pe care trebuie să-l facem aici este să indicăm care sunt câmpurile care vor face compoziția și cum trebuie să le comprimăm astfel încât să poată fi utilizate în cadrul codului Piton.
Această metodă funcționează împreună cu MultiWidget cine va fi însărcinat cu traducerea în HTML a tot ceea ce am definit anterior în clasa formularului.
Să vedem mai jos o imagine a unui exemplu de cod în care am implementat aceste concepte:

MARI

Aici vedem cum am definit mai întâi o clasă care moștenește de MultiWidget, în el indicăm că vom avea două câmpuri Introdu textul asociați și stabiliți un metoda decompress () care este cea care va separa valorile pentru prezentare.
În clasa următoare am setat ceva mai multe elemente, mai întâi îi spunem că ar trebui să moștenească de la MultiValueField apoi indicăm că widget trebuie să utilizați și, bineînțeles, vă vom spune să utilizați widgetul deja definit mai sus.
Apoi în a lui metoda __init__ Indicăm tipurile de câmpuri pe care le va lua și în cele din urmă definim metoda comprima (), vedem că în afară de sine primește și un parametru data_list, în acest sens vom trece lista datelor care trebuie combinate și le vom returna sub formă de tuplu, profităm și de validarea acestora pentru a evita primirea de date eronate care ar putea amenința aplicația noastră.
Cu aceasta încheiem acest tutorial văzând cum avem un instrument destul de avansat care ne permite să ne personalizăm formularele puțin mai mult în aplicația noastră în doar pași simpli.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave