Ich verwende inlineformset_factory, um Daten zu speichern. Ich kann Daten hinzufügen, vorhandene Daten bearbeiten. Problem ist mit bearbeiten Ich kann mehr Werbebuchungen hinzufügen, aber wie lösche ich vorhandene Werbebuchungen?Django: inlineformset_factory nicht vollständige Daten aktualisieren, aber neue Daten zu bestehenden hinzufügen
Views.py
@login_required
def edit_invoice(request,pk):
product = serviceinvoice.objects.get(pk=pk)
if product.user != request.user:
raise PermissionDenied
new_formset=createinvoiceformsetedit(instance=product)
if request.method == 'POST':
inv_form=createinvoiceformedit(user=request.user,data=request.POST,instance=product)
if inv_form.is_valid():
new_form=inv_form.save(commit=False)
new_form.user=request.user
new_formset=createinvoiceformsetedit(request.POST,instance=new_form)
if new_formset.is_valid():
new_form.save()
hero=new_formset.save(commit=False)
for hero1 in hero:
hero1.user=request.user
hero1.save()
return HttpResponseRedirect(reverse('invoicelist'),{'section':'editinvoice'})
else:
inv_form=createinvoiceformedit(request.user,instance=product)
return render(request,'account/editinvoice.html',{'inv_form':inv_form,'new_formset':new_formset})
Ich kann Prüfoption in meiner gerenderten siehe Tabelle löschen, aber auch die Delete Prüfoption auf die Auswahl, die Daten nicht gelöscht und Feld erforderlich Fehler angezeigt.
Mögliche Duplikat [Dynamisch löschen Inline-Formularsätze in Django] (http://stackoverflow.com/questions/2357059/dynamically-delete-inline- formsets-in-django) – solarissmoke
@solarissmoke Aktualisierte Frage. Ich kann Checkoption löschen sehen, aber es funktioniert nicht. Auch nach Auswahl der Check-Option Löschen wird der Feldfehler angezeigt. –
Dies geschieht nicht automatisch - Sie müssen Client-Site-Javascript haben, um das zu löschende Feld festzulegen. Aus diesem Grund schlägt der Post, den ich verlinkt habe, vor, django-dynamic-formset zu verwenden. – solarissmoke