Dear group,

I just upgraded from Django 1.11 to 2+ and thereby found 
https://code.djangoproject.com/ticket/28321
The ticket was resolved with commit 
https://github.com/django/django/commit/f32d24652b920135eb6a0f3de74599f03e181731

Well, this change leaves us with a situation where `formset.forms` possibly no 
longer aligns with `self.errors`.

Was that intended?

The original ticket reporter suggested that for a deleted form with errors, an 
empty dict should be added to formset._errors in a formset's full_clean(). This 
would have preserved the alignment of formset.forms and formset.errors.

Note that the formset implementation often uses index-based iterations over the 
forms which seems to suggest, although there is no other indication or hint, 
that formset.forms[i] correlates to formset.errors[i] for all valid i. (That 
was also my understanding from the documentation before having looked at the 
implementation.)

[ In my application code I have the requirement that even deleted forms must 
meet certain validation criteria. Therefore I relied on the Django 1.11 / 
pre-#28321 behavior, where at the same time   formset.is_valid() == True   and  
 any(formset.errors) == True   was possible. While I found this undocumented, 
it was my preferred behavior. ]

Any thoughts?

Best regards,
Carsten

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/ca5755d2-f905-f9ed-a8a9-60704bdaac4d%40cafu.de.
For more options, visit https://groups.google.com/d/optout.

Reply via email to