ジャンゴ:javascriptをせずにインラインフォームセットの行を追加します
-
20-09-2019 - |
質問
この記事では、このに関する: ジャンゴ管理する
で動的にインラインに行を追加します。JavaScriptを使用せずに、インラインフォームセットを追加するachiveする方法はありますか?明らかに、関係するページリフレッシュがあるだろう。
だから、フォームは「追加」というボタンがあったら...
私はこのようにそれを行うことができます考え出します:
if request.method=='POST':
if 'add' in request.POST:
PrimaryFunctionFormSet = inlineformset_factory(Position,Function,extra=1)
prims = PrimaryFunctionFormSet(request.POST)
私は、ポストデータとフォームを移入、1を毎回追加するだろうと思ったどの。しかし、余分= 1は、ポストデータに1を追加しないと思われます。
解決
それを手に入れます。
時にはそれが最も簡単なソリューションです。ただ、request.POSTデータのコピーを作成し、TOTAL-FORMSを変更します。
例えば..
if request.method=='POST':
PrimaryFunctionFormSet = inlineformset_factory(Position,Function)
if 'add' in request.POST:
cp = request.POST.copy()
cp['prim-TOTAL_FORMS'] = int(cp['prim-TOTAL_FORMS'])+ 1
prims = PrimaryFunctionFormSet(cp,prefix='prim')
それからちょうど通常通りのフォームを吐き出します。インラインエディタを追加し、あなたのデータを保持します。
所属していません StackOverflow