Может ли кто-нибудь помочь мне, почему данные моего клона набора форм не сохраняются?
У меня сейчас проблема с сохранением данных клонированного набора форм. Сейчас сохраняется только то, что находится в последней строке. Клонирование работает хорошо, как показано на рисунке. Все работает хорошо для моего сайта, кроме этой части. Прошу всех профессионалов, я новичок в этом, помогите мне, пожалуйста. Буду очень признателен. Застрял на этом уже 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