0
Formset
をcan_delete=true
で構築しました。 Formset
は問題なく動作します。問題は、送信後にユーザーが同じフォームページにリダイレクトされるため、フォームを再投入しています。どのようなバグは、それがもはやDBに存在しなくても、削除されたアイテムがフォームに残っているということです。Django 1.10 - Formsetは削除されたアイテムを再移植しました
:
class BookForm(forms.ModelForm):
class Meta:
model = Book
fields = ['title', 'description', 'author']
BookFormset = forms.modelformset_factory(
Book,
form=BookForm,
fields=['title', 'description', 'author'],
can_delete=True,
extra=1
)
提出ビュー機能:私は試した何
def submit(request):
book_formset = BookFormset(request.POST)
if book_formset.is_valid():
messages.add_message(request, messages.SUCCESS, 'Correct.')
book_formset.clean()
book_formset.save()
else:
messages.add_message(request, messages.ERROR, 'Error!')
context = {
'book_formset': book_formset,
}
return render(request, 'sand/index.html', context)
:画面を、以下では
を私はRABIT削除しようとしましたクレイジーbook
。
スクリーンの前に提出:
画面を後に提出:成功したフォームの送信後
は、 ')あなたは(' book_formset.cleanを呼び出す必要はありません注意してください - これは 'book_formset.is_valid()'呼び出しの一部として自動的に行われます。 – Alasdair
ああ、私はそれを知りませんでした。先端に感謝します。 – Fusion