Django – MultiWidget

Apropos Widgets , wir sollten wissen, dass dies eine Brücke zwischen dem HTML-Code und den Django- Feldern ist. Dies hat viel damit zu tun, wie wir das Verhalten von HTML in unseren Formularen und damit in unserer Anwendung steuern.

Durch diese Steuerung können wir einige Programmiertechniken anwenden, mit denen wir Daten aus verschiedenen Widgets speichern und verarbeiten und sie Django geben können, als wären sie Daten aus einer einzigen Quelle.

Teilen Sie die Daten auf mehrere Widgets auf

Die Operation hierfür kann mit der render () -Methode des Widgets durchgeführt werden. Dann können wir ein Feld haben und es beim Verarbeiten in mehrere HTML-Eingaben aufteilen, von denen jede einen Teil des Werts enthält, den wir speichern müssen.

Beispiel
Ein Beispiel kann das DateTime- Feld sein. Dies kann in ein Feld unterteilt werden, das nur das Datum und ein anderes Feld, das die Uhrzeit erfasst. Wenn wir es in der Datenbank speichern, sollten wir es vereinen und auf diese Weise haben wir ein vollständiges Feld, aber in dem Teil des Benutzers ist geteilt.

MultiWidget

Wie das Beispiel, das wir zuvor angedeutet haben, ist etwas ziemlich langweilig, da wir uns mit dem Schreiben zu vieler Routinen und Methoden befassen müssten, die uns bei der Validierung helfen. In Django haben wir bereits darüber nachgedacht, und wir haben einige Dienstprogramme, die uns zu einem großen Teil dieser Arbeit machen.

MultiValueField
Auf der Seite der Felder haben wir MultiValueField , das uns bei der Validierung der Daten, ihrer Bereinigung und dem Vergleich mit jedem der Felder hilft, die die Verbindung bilden. Alles, was wir hier tun müssen, ist anzugeben, welche Felder die Komposition bilden und wie wir sie komprimieren müssen, damit sie im Python- Code verwendet werden können.

Diese Methode funktioniert in Verbindung mit MultiWidget , das alles, was wir zuvor in der Formularklasse definiert haben, in HTML übersetzt.

See also  So installieren und verwenden Sie Googler unter Linux (Google mit Befehlen)

Unten sehen wir ein Bild eines Beispielcodes, in dem wir diese Konzepte implementiert haben:

django_multiples_widgets.jpg
Hier sehen wir, wie wir zuerst eine Klasse definiert haben, die von MultiWidget erbt . In dieser Klasse geben wir an, dass zwei InputText- Felder zugeordnet werden sollen, und wir richten eine decompress () -Methode ein , die die Werte für ihre Darstellung trennt.

In der nächsten Klasse legen wir einige weitere Elemente fest. Zuerst geben wir an, dass Sie von MultiValueField erben sollen, dann geben wir an, welches Widget Sie verwenden sollen, und natürlich geben wir an, dass Sie das bereits oben definierte Widget verwenden.

Dann geben wir in der Methode __init__ an, welche Arten von Feldern verwendet werden sollen, und schließlich definieren wir die compress () -Methode . Wir sehen, dass sie neben self auch einen data_list- Parameter erhält, in dem wir die Liste der Daten übergeben, die kombiniert werden müssen, und die Wenn wir als Tupel zurückkehren, nutzen wir auch die Validierung, um fehlerhafte Daten zu vermeiden, die unsere Anwendung gefährden könnten.

Damit schließen wir dieses Tutorial ab und sehen, wie wir ein sehr fortschrittliches Tool haben, mit dem wir unsere Formulare in unserer Anwendung in nur einfachen Schritten ein wenig weiter anpassen können.

administrator

Leave a Reply

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