6

この投稿はこれに関連しています: Add row to inlines dynamic in django admin

JavaScriptを使用せずにインラインフォームセットを追加する方法はありますか? 明らかに、ページの更新が必要になります。

したがって、フォームに「追加」というボタンがあれば...

私はこのようにすることができると考えました:

if request.method=='POST':
  if 'add' in request.POST:
    PrimaryFunctionFormSet = inlineformset_factory(Position,Function,extra=1)
    prims = PrimaryFunctionFormSet(request.POST)

毎回1を追加してから、フォームに投稿データを入力すると思いました。ただし、extra=1 は投稿データに 1 を追加しないようです。

4

1 に答える 1

6

とった。

時にはそれが最も簡単な解決策です。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')

次に、通常どおりフォームを吐き出します。データを保持し、インライン エディターを追加します。

于 2010-03-15T19:19:57.400 に答える