Dynamische Formulare

Bisher konnten wir über unsere Formulare immer nur ein Objekt zur gleichen Zeit eintragen. Das wäre unter gewissen Umständen mühselig, wenn man viele Objekte eintragen muss. Für dieses Problem bietet Django sogenannte Formsets an.

Mit Django Formsets können wir eine Sammlung von gleichen Formularen auf derselben Seite bearbeiten. Das heisst, wir haben das Formular tatsächlich dupliziert oder verdreifacht (im Hintergrund ist es natürlich) immer noch ein Formular, aber für den User sieht es so aus, als ob das Formular mehrmals abgebildet ist.

Stell Dir vor, du musst ein Adressbuch aktualisieren. Jeden Eintrag auf einer Seite mit einem Adressformular einzeln hinzufügen oder würde es nicht schneller mit einem einzigen Formular gehen, das uns erlaubt, so viele neue Einträge zu machen, wie wir haben wollen?

In der Praxis hat man dazu oftmals eine Formularzeile und einen Button, mit dem sich dynamisch eine neue Zeile hinzufügen lassen kann. In Django kann man zumindest den Backend-Part, also die Formularverarbeitung, relativ einfach mit sogenannten Formsets regeln. Für den Frontend-Part, also dem dynamischen Erweitern des Formulars benötigen wir clientseitiges JavaScript.

Und die gute Nachricht: Formsets werden von Crispy Forms unterstützt.

Template Packs