Initial data for modelformsets is treated in an odd way, which was outlined 
and discussed in the issues below

https://code.djangoproject.com/ticket/16995#comment:1
https://code.djangoproject.com/ticket/29739 (submitted by me)

In summary, if the initial data provided to BaseModelFormSet.__init__ is 
longer than the number of extra forms, the excess data won't be rendered in 
forms.

This causes problems when 
    a) writing abstract code which constructs the class separately from 
initialising it, or
    b) the code reuses the same class with differing initial data. 

In these cases the length of the initial data may not be known at the time 
of class construction. 

In order to minimise regressions I'd suggest that model formsets use 
max(self.extra, len(self.initial_extra)) in place of self.extra when 
calculating total_form_count().

I can't see this causing major regressions as if a user would like to limit 
the length of the forms they should already be doing so with the `max_num` 
parameter to the modelformset_factory. Othewrise, why not use the 
additional data in self.initial_extra?

Mark

-- 
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 django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
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/a0b827c5-b06f-43bb-83d1-bb89e1a6e78a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to