Django formset Validierung mit extra Form
Verfasst: Sonntag 15. Februar 2009, 08:35
Hi,
ich habe ein kleines Problem mit formsets die zusätzlich noch ein leeres Form anzeigen sollen.
Ich benutze dieses formset zum Hinzufügen eines zusätzlichen Datensatzes und zum Editieren der bereits vorhandenen. Wenn nun der Benutzer lediglich Daten ändert (bereits vorhandene Datensätze) und keinen Datensatz hinzufügt, dann spinnt die Validierung rum, denn der zusätzliche Datensatz ist dann leer und es wird scheinbar nicht erkannt, dass dieser leer sein darf, da er nicht hinzugefügt werden soll.
Kann ich das irgendwie ändern? Idealerweise wird der leere Datensatz gar nicht erst nach der Validierung in formset.forms auftauchen.
ich habe ein kleines Problem mit formsets die zusätzlich noch ein leeres Form anzeigen sollen.
Code: Alles auswählen
TestFormSet = formset_factory(TestForm, extra = 1)
Kann ich das irgendwie ändern? Idealerweise wird der leere Datensatz gar nicht erst nach der Validierung in formset.forms auftauchen.
Code: Alles auswählen
...
elif request.method == 'POST':
formset = TestFormSet(request.POST)
if formset.is_valid():
for form in formset.forms:
test_id = form.cleaned_data['test_id']
if test_id is not None:
foo = models.Test.objects.get(id = test_id)
else:
foo = models.Test()
foo.bar = form.cleaned_data['bar']
foo.save()
return render_to_response('test.html', {'formset' : formset}, context_instance = RequestContext(request))