Django – Methoden für Modellfelder

In Django gibt es eine Reihe von Methoden, die auf die Felder eines Modells angewendet werden können, um diese mit bereits festgelegten Funktionen zu versehen, die nicht erneut erstellt werden müssen.

Dies erleichtert die Implementierung unserer Anwendungen. Zusätzlich zur Manipulation unseres Modells gelten diese Methoden nicht für alle Arten von Feldern. Es gibt jedoch nur wenige Ausnahmen. Außerdem gibt es einige Methoden, die nur für die interne Verwendung des Frameworks bestimmt sind. Wenn wir sie jedoch kennen, können wir sie in einer Anwendung implementieren, die sie benötigt.

Gemeinsame Methoden der Felder

Als nächstes werden wir eine Anzahl von Methoden erklären, die wir mit den Feldern des Modells verwenden können. Wir stellen fest, dass es sich nicht um alle Methoden handelt, die in Django existieren. Dennoch sind dies einige der am häufigsten verwendeten:

clean (value, instance) : Diese Methode überprüft, ob der angegebene Wert für das Modell und das Objekt, dem er zugewiesen ist, geeignet ist. Intern verarbeitet es eine Liste von Überprüfungen, die zum Zeitpunkt der Erstellung des Objekts initialisiert und das Feld instanziiert wurden, und gibt einen korrekten Wert zurück, wenn alles gültig ist. Andernfalls wird eine Ausnahme ausgelöst.

In der folgenden Abbildung sehen wir ein kleines Beispiel für die Funktionsweise dieser Methode:

django_metods_comunes.jpg
Wie wir sehen, lösen wir bei der Eingabe eines leeren Werts, der sich von einem Leerzeichen unterscheidet, eine Ausnahme mit der Standardnachricht der Formularklasse aus .

db_type (Verbindung) : Gibt die Definition der Spalten der Datenbank zurück, die zum Speichern der Daten in den Feldern erforderlich sind. Normalerweise wird es intern im Framework verwendet, kann jedoch verwendet werden, wenn mit einem anderen Tool direkt auf die Datenbank zugegriffen werden soll.

See also  Java / Spring - Inheritance, Polymorphism und Dependency Injection

formfield () : Gibt eine Form von Feldern basierend auf den Datentypen der Felder zusammen mit ihrem ausführlichen Namen zurück , dh dem Namen, mit dem das Feld beschrieben wird. Auf diese Weise können wir es in eine Form einfügen , die das Feld anzeigt benutzer Nehmen Sie optional als Argument die form_class , die standardmäßig das am besten geeignete Formular für die Felder platziert. Diese Methode wird automatisch von Django aufgerufen, wenn ein Formular erstellt wird. Sie kann jedoch manuell gemäß unseren Anforderungen in der Anwendung aufgerufen werden.

get_internal_type () : Gibt einen String zurück, der den Datentyp des Feldes auf hoher Ebene darstellt. Dieser wird normalerweise im Backend verwendet , um jede Datenbank abzubilden. Auf diese Weise wird die zu verwendende Spalte bestimmt.

pre_save (model_instance, add) : Liefert einen Wert für das Feld genau zu dem Zeitpunkt, bevor es in der Datenbank gespeichert wird. Standardmäßig wird nur der Wert zurückgegeben, der sich in der Instanz des Modells befindet. Es kann jedoch auch ein Wert zurückgegeben werden, der aus einem anderen Feld oder möglicherweise aus einem Objekt ohne direkte Beziehung stammt, z. B. dem aktuellen Datum

save_form_data (Instanz, Daten) : Speichert die an das entsprechende Attribut gelieferten Daten im Objekt. Diese Methode ist eine Verknüpfung für die Formulare, mit denen Sie Daten auf geeignete Weise eingeben können, um ein Modell aus einem Formular zu füllen.

validate (value, instance) : Gibt zurück, ohne Fehler auszulösen, wenn der Wert des Felds für das Feld gemäß der Konfiguration geeignet ist, die in seiner Definition im Modell vorhanden ist. Diese Methode wird intern von der clean () -Methode aufgerufen.

See also  So beheben Sie Fehler, indem Sie das leere weiße Blatt Excel 2016 öffnen

Wir haben das Lernprogramm beendet und uns dabei darauf verlassen, dass wir die verschiedenen Felder, auf die wir uns im Modell verlassen können, mithilfe dieser Reihe allgemeiner Methoden, die wir gerade erwähnt haben, besser verstehen.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *