Может ли кто-нибудь помочь мне, почему данные моего клона набора форм не сохраняются?

У меня сейчас проблема с сохранением данных клонированного набора форм. Сейчас сохраняется только то, что находится в последней строке. Клонирование работает хорошо, как показано на рисунке. Все работает хорошо для моего сайта, кроме этой части. Прошу всех профессионалов, я новичок в этом, помогите мне, пожалуйста. Буду очень признателен. Застрял на этом уже 4 дня

Предположим, что все поля содержат текст. Те, что в красном круге, не сохраняются, а те, что в синем круге, сохраняются при нажатии кнопки сохранить

Вот мой код:

views.py

def device_add(request):
    if request.method == "POST":
        device_frm = DeviceForm(request.POST) ##Part A1
        dd_form = DeviceDetailForm(request.POST)
        #di_form= DeviceInterfaceForm(request.POST)
        di_formset = modelformset_factory(DeviceInterface, fields=('moduletype', 'firstportid', 'lastportid'), extra=1,max_num=3)
        di_form=di_formset(request.POST)
        if device_frm.is_valid():
        # Create and save the device
        # new_device here is the newly created Device object
            new_device = device_frm.save()
            if dd_form.is_valid():
                # Create an unsaved instance of device detail
                deviceD = dd_form.save(commit=False)
                # Set the device we just created above as this device detail's device
                deviceD.DD2DKEY = new_device
                # If you did not render the hostname for the device detail, set it from the value of new device
                deviceD.hostname = new_device.hostname
                deviceD.save()
                if di_form.is_valid():
                    deviceI=di_form.save(commit=False) 
                    for deviceI in deviceI:          
                        deviceI.I2DKEY=new_device
                        deviceI.save()
                    print(deviceI)
                    return render(request, 'interface/device_added.html',{'devices':Device.objects.all()})
                else:
                    print(di_form.non_form_errors())
                return render(request,'interface/device_add.html',{'form':device_frm, 'dd_form': dd_form, 'di_form':di_form})
            return render(request,'interface/device_add.html',{'form':device_frm, 'dd_form': dd_form, 'di_form':di_form})
        return render(request,'interface/device_add.html',{'form':device_frm, 'dd_form': dd_form, 'di_form':di_form})
    else:
        device_frm = DeviceForm()
        dd_form = DeviceDetailForm()
        di_formset = modelformset_factory(DeviceInterface, fields=('moduletype', 'firstportid', 'lastportid'),extra=1, max_num=3)
        di_form=di_formset(queryset = DeviceInterface.objects.none())
        return render(request,'interface/device_add.html',{'form':device_frm, 'dd_form': dd_form, 'di_form':di_form})

device_add.html

Вернуться на верх