Ich habe kürzlich Django-Formulare von Unterklasse FormView
gelernt, wo die gewünschte Form dem FormView.form_class
Attribut zugeordnet ist. Wenn das Formular validiert wird, wird die form_valid()
-Methode aufgerufen (für dieses eine Formular). Zum Beispiel:Django: Mehrere Formulare möglich, wenn FormView verwendet wird?
from accounts.forms import SignUpForm, UpdateAccountForm, UpdateBillingForm
class SignUpView(FormView):
form_class = SignUpForm
def form_valid(self, form):
# code when form validates...
Allerdings habe ich jetzt eine Situation, wo ich brauche drei einzigartige Formen auf einer Seite (mit nur einem Formular für den Benutzer sichtbar zu einem Zeitpunkt). Also, ich möchte sie alle in der gleichen Ansicht behandeln.
Sind mit FormView mehrere Seiten möglich? Ich bin mir nicht sicher, wie ich damit umgehen soll, sowohl was die Übergabe mehrerer Formulare an das View anbelangt (z. B. das andere UpdateAccountForm- und UpdateBillingForm-Formular), als auch die Unterscheidung zwischen dem gesendeten und validierten Formular. Was wäre der beste Weg?
Sieht aus wie es mit Formview nicht möglich ist (?). Pro diese [Antworten] (http://stackoverflow.com/questions/1395807/proper-way-to-handle-multiple-forms-on-one-page-in-django), sollte man eine generische Ansicht verwenden und hinzufügen Präfixe (?) – pete
Ich habe gerade ein Tool geschrieben, um genau dieses Ding zu tun, nur teilweise dokumentiert ab sofort, aber die Klasse MultFormView ist nur ein paar Zeilen Code genau das, was Sie versuchen, https://github.com zu tun/dm03514/django-CBV-Toolkit – dm03514