Django如何保存多个动态表单

时间:2019-12-30 08:27:54

标签: django forms

无法将动态表单条目保存到数据库。它仅接受最后一个条目并保存到数据库中。 这是代码: 查看

def dynamicRow (request, *args, **kwargs):

form = dynamicRow_Form(request.POST or None)
template_name = 'cvp/rowdata.html'

### Below will generate the FORM based on SEQ number.
if request.method == 'POST':
    if form.is_valid():
        print("NO of ROW: {}".format(request.POST['totalnum']))
        no_of_rows = int(request.POST.get('totalnum'))

        list_of_rows = [dynamicRow_Form() for i in range(no_of_rows)]
        args = {'forms': list_of_rows}

        for i in range(len(args['forms'])):
            i = dynamicRow_Form(request.POST)
            print("FORM ROWS: {}".format(i.is_valid()))
            if i.is_valid():
                print("HOSTNAME: {}".format(i.cleaned_data['hostname']))
                i.save()
                messages.success(request, 'Successfully stored data into database.')
            continue
    else:
        messages.error(request, form.errors)
else:
    form = dynamicRow_Form()
return render(request, template_name, {'form': form })

如果No_of_row为1,则保存正确;如果No_of_row多于1,则仅获取最后一个条目并将数据保存到DB中。逻辑是否正确?不知道什么是不正确的。

0 个答案:

没有答案