2009-08-12 14 views
6

In this Django Doc wird erläutert, wie Sie ein Formset erstellen, mit dem Sie Bücher bearbeiten können, die zu einem bestimmten Autor gehören.Django Formset ohne Instanz

Was ich tun möchte, ist: Erstellen Sie ein Formularsatz, mit dem Sie neues Buch eines neuen Autors hinzufügen können ... Fügen Sie das Buch und ihre Autoren im gleichen Formset.

Können Sie ein Licht gime? Vielen Dank.

Antwort

8

Wenn Sie das Formular und das Formularset für die Erstanzeige instanziieren, müssen Sie keine Instanz bereitstellen. Sie erhalten also nur leere Formulare.

Wenn Sie die Daten für POST übergeben, können Sie das Formular zuerst ausführen, speichern und eine Instanz abrufen. Anschließend können Sie diese Instanz in das Formset übernehmen, damit die zugehörigen Objekte ordnungsgemäß gespeichert werden.

+1

Danke, Lichter: wenn request.method == "POST": Buchform = Buchform (request.POST) b = Buchform .save (Commit = False) b.save() formset = PadreFormSet (request.POST, request.FILES, instance = b) wenn formset.is_valid(): formset.save() Es hat bei mir funktioniert, Danke! – panchicore

0

Dies hängt davon ab, ob Sie es selbst tun oder den integrierten Administrator verwenden.

Wenn Sie den Administrator verwenden, können Sie inlines verwenden.

Wenn Sie dies in Ihrer eigenen Anwendung tun, dann liegt es an Ihnen. Erstellen Sie ein einzelnes Formular mit Feldern für eine neue author und book. Wenn der Benutzer das Formular übermittelt, müssen Sie die neuen Datensätze erstellen.

Verwandte Themen