Django - MultiWidget

Sommario
Parlando di widget, dobbiamo sapere che questi sono un ponte tra il codice HTML e i campi di Django; Questi hanno molto a che fare con il modo in cui controlleremo il comportamento dell'HTML nei nostri moduli e quindi nella nostra applicazione.
Tale è il controllo, che possiamo applicare alcune tecniche di programmazione in cui ci permetteremo di memorizzare ed elaborare i dati di diversi widget e darli a Django come se si trattasse di dati provenienti da un'unica fonte.
Dividi i dati tra più widget
Il funzionamento di questo può essere ottenuto utilizzando il render() metodo del aggeggio, quindi possiamo avere un campo e durante l'elaborazione lo dividiamo in diversi input HTML, ognuno contenente una parte del valore che dobbiamo memorizzare.
EsempioUn esempio può essere il campo Appuntamento, questo potrebbe essere suddiviso in un campo che cattura solo la data e un altro che cattura l'ora, ma quando è memorizzato in Banca dati Dovremmo unirli e in questo modo abbiamo un campo completo ma nella parte utente è diviso.
MultiWidget
Come l'esempio che abbiamo indicato in precedenza, è qualcosa di abbastanza noioso poiché dovremmo occuparci di scrivere troppe routine e metodi che ci aiutano con la convalida, in Django Questo è già stato pensato e abbiamo utility che fanno gran parte di questo lavoro per noi.
MultiValueFieldA lato dei campi abbiamo MultiValueField che ci aiuta con la validazione dei dati, la loro pulizia e il confronto con ciascuno dei campi che compongono il composto; L'unica cosa che dobbiamo fare qui è indicare quali sono i campi che faranno la composizione e come dobbiamo comprimerli in modo che siano utilizzabili all'interno del codice Pitone.
Questo metodo è fatto per funzionare in combinazione con MultiWidget che si occuperà di tradurre in HTML tutto ciò che abbiamo precedentemente definito nella classe form.
Vediamo di seguito un'immagine di un codice di esempio in cui abbiamo implementato questi concetti:

INGRANDIRE

Qui vediamo come abbiamo prima definito una classe che eredita di MultiWidget, in esso indichiamo che avremo due campi Testo di input associati e stabilire a decomprimere () metodo che è quello che separerà i valori per la presentazione.
Nella prossima classe impostiamo un po' più di elementi, prima gli diciamo che dovrebbe ereditare da MultiValueField allora indichiamo che aggeggio devi usare e ovviamente ti diremo di usare il widget già definito sopra.
poi nella sua __init__ metodo Indichiamo i tipi di campi che ci vorranno e infine definiamo il metodo comprimere (), vediamo che oltre al sé riceve anche un parametro data_list, in questo passeremo l'elenco dei dati che devono essere combinati e li restituiremo come tupla, approfittiamo anche della loro convalida per evitare di ricevere dati errati che potrebbero minacciare la nostra applicazione.
Con questo finiamo questo tutorial vedendo come abbiamo uno strumento abbastanza avanzato che ci consente di personalizzare un po' di più i nostri moduli nella nostra applicazione in pochi semplici passaggi.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave