Django - Benutzerdefinierte Felder

Inhaltsverzeichnis
Wir haben eine große Auswahl an Feldtypen wenn wir mit den Formularen in . arbeiten DjangoEs kommt jedoch eine Zeit, in der wir eine Validierung benötigen oder ein neues Verhalten definieren, dafür können wir unsere Felder problemlos mit den Methoden von . anpassen Django.forms.
Der Vorteil der Arbeit mit benutzerdefinierten Feldern in Formularen besteht darin, dass wir uns nicht um deren Kompatibilität mit kümmern müssen mehrere Back-Ends als ob wir uns Sorgen machen sollten, wenn wir einen neuen Feldtyp im Modell erstellen.
Benutzerdefinierte Felder
EIN benutzerdefinierte Feld im Formular ermöglicht es uns, Unterstützung für Arten der Dateneingabe zu generieren, die es in der Vielzahl von Möglichkeiten, die es uns bietet, nicht gibt DjangoDadurch können wir personalisiertere Ergebnisse erzielen, die unserer Anwendung helfen, unsere Ziele besser zu erreichen.
Wie erstellt man sie?Um ein benutzerdefiniertes Feld zu erstellen, muss dies Erben der Klasse Felder enthalten in Django.forms, auf diese Weise garantieren wir das korrekte Funktionieren innerhalb des Formulars; Ein weiterer Aspekt, den wir bereits erwähnt hatten, ist, dass diese Art von Feld einfacher zu implementieren ist, da wir die Arbeit mit verschiedenen Backends, also mit mehreren Datenbanken wie in einem Modell, nicht berücksichtigen müssen, denn nur Wir werden String-Typ-Daten auswerten im Formular, wenn der Benutzer Daten eingibt.
Validierung
Dies ist vielleicht der grundlegende Aspekt bei der Generierung neuer Felder, da wir bei der Definition eines Validierungstyps den Feldtyp festlegen können, da die Validierung dem Feld den einzigartigen Charakter verleiht.
Wie füge ich eine Validierung hinzu?Um eine Validierung einzuschließen, müssen wir auf zurückgreifen saubere () Methode, akzeptiert diese Methode das Objekt der Klasse und den Wert in der Bewertung, dann kann diese Methode gemäß den von uns erstellten Standards zwischen den eingegebenen Daten und der Übereinstimmung mit unserer Validierung unterscheiden, wenn nicht, wird dies der Fall sein in der Lage, eine Ausnahme auszulösen und eine von uns festgelegte Fehlermeldung zu senden.
Sehen wir uns in der folgenden Abbildung einen Code an, in dem zwei neue Arten von benutzerdefinierten Feldern generiert werden:

Hier sehen wir, wie wir alles anwenden, worüber wir gesprochen haben, zuerst machen wir das importieren von Felder innerhalb Django.forms Da dies die Klasse ist, die wir verwenden müssen, erstellen wir eine Klasse, die in diesem Fall von erbt Felder.DecimalField, dies lässt uns verstehen, dass unser neues Feld numerisch sein wird.
Dann definieren wir einen Fehler namens außer ReichweiteDies hilft uns, wenn wir zum Zeitpunkt der Validierung der Daten eine Ausnahme auslösen, um eine Nachricht anzeigen zu können, die den Benutzer führt; Dies gibt uns die Möglichkeit, verschiedene Arten von Meldungen für verschiedene Fehler zu erhalten.
WichtigSchließlich überschreiben wir die saubere Methode innerhalb jeder neuen Klasse, damit wir die neue Validierung ausarbeiten können, verwenden wir zuerst die Methode Super sauber () damit ruft die clean()-Methode der Klasse auf Felder.DecimalFields Damit können wir überprüfen, ob es sich um einen korrekten numerischen Typ handelt, bevor wir unsere eigene Validierung auswerten, was uns die Suche nach einer Validierung des eingegebenen Datentyps erspart, hier wird der Vorteil der Vererbung erwähnt.
Schließlich validieren wir mit unseren Bedingungen und wenn sie nicht erfüllt sind, geben wir den Fehler aus; Daher haben wir bereits ein benutzerdefiniertes Feld erstellt.
Damit beenden wir das Tutorial mit einem zusätzlichen Tool, mit dem wir Anwendungen erstellen können, die unseren Bedürfnissen näher kommen.Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben
wave wave wave wave wave