2009-08-12 14 views
6

W this Django Doc wyjaśnia, jak utworzyć zestaw, który umożliwia edycję książek należących do konkretnego autora.Django Formset bez instancji

Co chcę zrobić, to: Utwórz zestaw formularzy, który pozwoli Ci dodać nową książkę należącą do NOWEGO autora ... Dodaj książkę i ich autorów w tym samym zestawie formularzy.

Czy możesz zapalić światło? dzięki.

Odpowiedz

8

Kiedy tworzysz formularz i zestaw do wstępnego wyświetlania, nie musisz podawać instancji, więc otrzymasz puste formularze.

Po przekazaniu danych na POST można najpierw wypełnić formularz, zapisać go i pobrać instancję. Następnie możesz przekazać tę instancję do zestawu, tak aby poprawnie zapisywała powiązane obiekty.

+1

Dzięki, światła: jeśli request.method == "POST": bookform = BookForm (request.POST) b = bookform .save (commit = False) b.save() formset = PadreFormSet (request.POST, request.FILES, instance = b) if formset.is_valid(): formset.save() Udało się to dla mnie, dzięki! – panchicore

0

To zależy od tego, czy robisz to sam, czy używasz wbudowanego administratora.

Jeśli używasz administratora, możesz użyć inlines.

Jeśli robisz to we własnej aplikacji, to zależy od ciebie. Utwórz pojedynczy formularz z polami dla nowych author i book. Kiedy użytkownik przesyła formularz, Twoim zadaniem jest utworzenie nowych rekordów.

Powiązane problemy