Django - Câmpuri personalizate

Cuprins
Avem o selecție largă de tipuri de câmp când lucrăm cu formele în DjangoCu toate acestea, vine un moment în care avem nevoie de o validare sau de a defini un comportament nou, pentru aceasta ne putem personaliza câmpurile fără probleme folosind metodele de Django.forms.
Avantajul de a lucra cu câmpuri personalizate în formulare este că nu trebuie să ne facem griji cu privire la compatibilitatea lor cu backend-uri multiple de parcă ar trebui să fim îngrijorați atunci când creăm un nou tip de câmp în model.
câmpuri customizate
A câmp personalizat în formular ne permite să generăm suport pentru tipuri de introducere de date care nu există în numărul mare de opțiuni pe care ni le oferă DjangoDatorită acestui fapt, putem obține rezultate mai personalizate care ne ajută aplicația să ne atingă mai bine obiectivele.
Cum să le creezi?Pentru a crea un câmp personalizat, acest lucru trebuie moşteni a clasei Câmpuri inclus în Django.forms, în acest fel garantăm funcționarea corectă a acestuia în cadrul formularului; Un alt aspect pe care l-am menționat deja este că acest tip de câmp este mai ușor de implementat, deoarece nu trebuie să luăm în considerare munca cu diferite backend-uri, adică cu mai multe baze de date așa cum ar fi într-un model, acest lucru se datorează faptului că vom evalua datele de tip șir în formularul când utilizatorul introduce date.
Validare
Acesta este poate aspectul fundamental în generarea de noi câmpuri, deoarece atunci când definim un tip de validare putem stabili tipul de câmp, deoarece validarea este ceea ce va da caracterul unic câmpului menționat.
Cum se include o validare?Pentru a include o validare la care trebuie să recurgem metoda clean (), această metodă acceptă obiectul clasei și valoarea în evaluare, apoi, conform standardelor pe care le-am creat, această metodă poate discerne între datele introduse și dacă acestea sunt sau nu conforme validării noastre, dacă nu, va fi capabil să creeze o excepție și să trimită un mesaj de eroare pe care l-am setat.
Să vedem în imaginea următoare un cod în care sunt generate două noi tipuri de câmpuri personalizate:

Aici vedem cum aplicăm tot ce am vorbit, mai întâi facem import de câmpuri în Django.forms deoarece este clasa de care trebuie să folosim, atunci creăm o clasă care va moșteni în acest caz din câmpuri.DecimalField, acest lucru ne permite să înțelegem că noul nostru câmp va fi numeric.
Apoi definim o eroare numită out_of_rangeAcest lucru ne ajută atunci când ridicăm o excepție în momentul validării datelor pentru a putea afișa un mesaj care ghidează utilizatorul; acest lucru ne oferă posibilitatea de a avea diferite tipuri de mesaje pentru diferite erori.
ImportantÎn cele din urmă, suprascriem metoda curata în interiorul fiecărei clase noi, astfel încât să putem elabora noua validare, folosim mai întâi metoda super (). clean () cu aceasta apelează la metoda clean () a clasei câmpuri.Câmpuri Decimale cu aceasta putem confirma faptul că acestea sunt un tip numeric corect înainte de a ne evalua propria validare, ceea ce ne scutește de nevoia de a localiza o validare a tipului de date introduse, aici se remarcă avantajul moștenirii.
În cele din urmă validăm cu condițiile noastre și dacă acestea nu sunt îndeplinite ridicăm eroarea; deci am creat deja un câmp personalizat.
Cu aceasta încheiem tutorialul cu un instrument suplimentar care ne permite să realizăm aplicații care sunt mai aproape de nevoile noastre.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
wave wave wave wave wave