質問

この記事では、このに関する: ジャンゴ管理する

で動的にインラインに行を追加します。

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')

それからちょうど通常通りのフォームを吐き出します。インラインエディタを追加し、あなたのデータを保持します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top