6

这篇文章与此相关: 在 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 添加到 post 数据中。

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 回答