Español English

Muster rücksendeformular

0

Legen Sie das exclude-Attribut der inneren Meta-Klasse des ModelForm auf eine Liste von Feldern fest, die aus dem Formular ausgeschlossen werden sollen. Django verhindert jeden Versuch, ein unvollständiges Modell zu speichern. Wenn das Modell also nicht zulässt, dass die fehlenden Felder leer sind, und keinen Standardwert für die fehlenden Felder liefert, schlägt jeder Versuch zum Speichern() eines ModelForm mit fehlenden Feldern fehl. Um diesen Fehler zu vermeiden, müssen Sie Ihr Modell mit Anfangswerten für die fehlenden, aber erforderlichen Felder instanziieren: Genau wie bei der normalen Formularvalidierung wird die Modellformularvalidierung implizit ausgelöst, wenn is_valid() aufgerufen wird oder auf das Errors-Attribut zugreift und explizit beim Aufruf von full_clean(), obwohl Sie die letztere Methode in der Praxis in der Regel nicht verwenden. Eine Modellformularinstanz, die an ein Modellobjekt angefügt ist, enthält ein Instanzattribut, das seinen Methoden Zugriff auf diese bestimmte Modellinstanz gewährt. Sie können Formulare aus einem bestimmten Modell mit der eigenständigen Funktion modelform_factory() erstellen, anstatt eine Klassendefinition zu verwenden. Dies ist möglicherweise bequemer, wenn Sie nicht viele Anpassungen vornehmen müssen: Wenn Sie ein Formset erstellen möchten, mit dem Sie Bücher bearbeiten können, die zu einem bestimmten Autor gehören, können Sie dies tun: Beachten Sie schließlich, dass Sie das Formularfeld überschreiben können, das für ein bestimmtes Modellfeld verwendet wird. Siehe Überschreiben der Standardfelder unten. Sie können eine Ansicht bereitstellen, die es einem Benutzer ermöglicht, die zugehörigen Objekte eines Modells zu bearbeiten.

So können Sie das tun: Wie Sie vielleicht erwarten, sind die Feldtypen ForeignKey und ManyToManyField-Modell sonderfallbereit: Für Personen, einschließlich Unternehmen, die unter den Abschnitten 139(4A) oder 139(4B) oder 139(4C) oder 139(4D) nur die Verwendung von Feldern zurückgeben müssen, beschränkt sich das Formular, nur die angegebenen Felder zu verwenden. Alternativ können Sie einen «Opt-out»-Ansatz wählen und angeben, welche Felder ausgeschlossen werden sollen: Wenn Sie ein Formset zurückgeben möchten, das keine bereits vorhandenen Instanzen des Modells enthält, können Sie ein leeres QuerySet angeben: Der @Model.Code usw. gibt nur den Wert des Felds aus. Um Elemente zurückbuchen zu können, müssen sie Formelemente wie Eingaben sein. Verwenden Sie so etwas wie wie wir zu Kunden am Telefon sagen. «Wie auch immer Sie sich entscheiden, Ihre Ausrüstung zurückzugeben, bitte denken Sie daran, dass die Ausrüstung auf Ihr Versicherungsrisiko geht, bis Sie sicher von Connevans empfangen werden.» Fehlermeldungen, die auf Formularfeldebene oder auf Formularmetaebene definiert sind, haben immer Vorrang vor den Fehlermeldungen, die auf Modellfeldebene definiert sind. Diese save()-Methode akzeptiert ein optionales Commit-Schlüsselwortargument, das entweder True oder False akzeptiert. Wenn Sie save() mit commit=False aufrufen, wird ein Objekt zurückgegeben, das noch nicht in der Datenbank gespeichert wurde. In diesem Fall liegt es an Ihnen, save() auf der resultierenden Modellinstanz aufzurufen. Dies ist nützlich, wenn Sie eine benutzerdefinierte Verarbeitung für das Objekt vor dem Speichern oder eine der spezialisierten Modellspeicheroptionen verwenden möchten. Commit ist standardmäßig True.

ModelForm ist ein reguläres Formular, das bestimmte Felder automatisch generieren kann. Die automatisch generierten Felder hängen vom Inhalt der Meta-Klasse ab und von welchen Feldern bereits deklarativ definiert wurde. Grundsätzlich generiert ModelForm nur Felder, die im Formular fehlen, oder mit anderen Worten Felder, die nicht deklarativ definiert wurden. Wir wissen, dass einige Leute Produkte zurückgeben, weil sie nicht verstanden haben, wie sie funktionieren. Unser Kundenservice-Team ist sehr kenntnisig über die Produkte, die wir verkaufen, also kontaktieren Sie uns bitte, wenn Sie irgendwelche Zweifel haben, wie Ihr Produkt funktionieren sollte – es wäre eine große Schande für Sie, ein Produkt zurückgeben zu müssen, nur weil es nicht richtig eingerichtet wurde.