Django - Campi personalizzati

Sommario
Abbiamo una vasta selezione di tipi di campo quando lavoriamo con i moduli in DjangoTuttavia, arriva un momento in cui abbiamo bisogno di una convalida o di definire un nuovo comportamento, per questo possiamo personalizzare i nostri campi senza problemi usando i metodi di Django.forms.
Il vantaggio di lavorare con campi personalizzati nei moduli è che non dobbiamo preoccuparci della loro compatibilità con più backend come se dovessimo preoccuparci quando creiamo un nuovo tipo di campo nel modello.
Campi personalizzati
UN campo personalizzato nel modulo ci consente di generare supporto per tipi di inserimento dati che non esistono nel gran numero di opzioni che ci offre DjangoGrazie a questo, possiamo ottenere risultati più personalizzati che aiutano la nostra applicazione a raggiungere meglio i nostri obiettivi.
Come crearli?Per creare un campo personalizzato questo deve ereditare della classe Campi incluso in Django.forms, in questo modo garantiamo il suo corretto funzionamento all'interno del form; Un altro aspetto che avevamo già menzionato è che questo tipo di campo è più facile da implementare poiché non abbiamo bisogno di prendere in considerazione il lavoro con diversi backend, cioè con più database come sarebbe in un modello, questo perché solo valuteremo i dati di tipo stringa nel modulo quando l'utente inserisce i dati.
Convalida
Questo è forse l'aspetto fondamentale nella generazione di nuovi campi, poiché quando si definisce un tipo di convalida possiamo stabilire il tipo di campo, poiché la convalida è ciò che darà il carattere univoco a detto campo.
Come includere una convalida?Per includere una convalida dobbiamo ricorrere a metodo clean(), questo metodo accetta l'oggetto della classe e il valore in valutazione, quindi secondo gli standard che abbiamo creato questo metodo è in grado di discernere tra i dati inseriti e se sono conformi o meno alla nostra convalida, in caso contrario sarà in grado di sollevare un'eccezione e inviare un messaggio di errore che abbiamo impostato.
Vediamo nell'immagine seguente un codice dove vengono generati due nuovi tipi di campi personalizzati:

Qui vediamo come applichiamo tutto ciò di cui abbiamo parlato, prima facciamo il importare di campi entro Django.forms poiché è la classe che dobbiamo usare, allora creiamo una classe che erediterà in questo caso da field.DecimalField, questo ci fa capire che il nostro nuovo campo sarà numerico.
Quindi definiamo un errore chiamato fuori dal limiteQuesto ci aiuta quando solleviamo un'eccezione al momento della convalida dei dati per poter mostrare un messaggio che guidi l'utente; questo ci dà l'opportunità di avere diversi tipi di messaggi per diversi errori.
ImportanteInfine sovrascriviamo il metodo pulito all'interno di ogni nuova classe in modo da poter elaborare la nuova validazione, usiamo prima il metodo eccellente (). pulito () con questo chiama il metodo clean() della classe field.DecimalFields con questo possiamo convalidare che sono un tipo numerico corretto prima di valutare la nostra convalida, il che ci evita di dover individuare una convalida del tipo di dati inseriti, qui si nota il vantaggio dell'ereditarietà.
Infine convalidiamo con le nostre condizioni e se non sono soddisfatte solleviamo l'errore; quindi abbiamo già creato un campo personalizzato.
Con questo terminiamo il tutorial con uno strumento aggiuntivo che ci consente di realizzare applicazioni più vicine alle nostre esigenze.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