Django:在没有javascript的情况下添加内联formset行

Bra*_*ant 5 python django django-models django-forms django-views

这篇文章与此相关: 在django admin中动态添加行内联

有没有办法在不使用javascript的情况下添加内联表单集?显然,会涉及页面刷新.

所以,如果表单有一个名为'add'的按钮...

我想我可以这样做:

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

我认为每次添加1,然后使用发布数据填充表单.但是,似乎extra = 1不会为帖子数据添加1.

Bra*_*ant 5

得到它了.

有时这是最简单的解决方案.只需复制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')
Run Code Online (Sandbox Code Playgroud)

然后正常吐出表格.保留您的数据,添加内联编辑器.