Nevermind. I found that I was not instantiating the formset with the "instance" argument, naming the parent object. Once that was added, everything worked as designed.
-AB On Thu, Dec 23, 2010 at 9:02 PM, Andrew Badstubner <and...@badstubner.com> wrote: > I have a form that contains a parent object in the header and then > lists the children as a formset in the same HTML <form>. I can create > new "families" of parent objects and children just fine, but I can't > edit them. I've tracked the error down to the line where the view is > trying to instantiate the FormSet object for the children from the > POST arguments. Python is complaining about an IndexError (see > traceback below). > > I've found that I can modify parents just fine when there are zero > children, but as soon as there are child objects, everything falls > apart when the model formset is being instantiated. > > Has anyone seen this before? > > Many thanks for any help, > > Andy > > > ================================= > > Environment: > > Request Method: POST > Request URL: http://127.0.0.1:8000/mixture/13/edit/ > Django Version: 1.2.1 > Python Version: 2.6.1 > Installed Applications: > ['django.contrib.auth', > 'django.contrib.contenttypes', > 'django.contrib.sessions', > 'django.contrib.sites', > 'django.contrib.messages', > 'django.contrib.admin', > 'django.contrib.admindocs', > 'form_utils', > 'sgm.general', > 'sgm.mixture', > 'sgm.msds', > 'sgm.account', > 'sgm.errors'] > Installed Middleware: > ('django.middleware.common.CommonMiddleware', > 'django.contrib.sessions.middleware.SessionMiddleware', > 'django.middleware.csrf.CsrfViewMiddleware', > 'django.contrib.auth.middleware.AuthenticationMiddleware', > 'django.contrib.messages.middleware.MessageMiddleware', > 'debug_toolbar.middleware.DebugToolbarMiddleware') > > > Traceback: > File "/Library/Python/2.6/site-packages/django/core/handlers/base.py" > in get_response > 100. response = callback(request, > *callback_args, **callback_kwargs) > File "/Library/Python/2.6/site-packages/django/contrib/auth/decorators.py" > in _wrapped_view > 25. return view_func(request, *args, **kwargs) > File > "/Users/abadstubner/Documents/Projects/specialty_gas_manager/../specialty_gas_manager/mixture/views.py" > in edit_mixture > 78. comp_formset = forms.CustomerMixtureComponentFormset( > request.POST, prefix='comps' ) > File "/Library/Python/2.6/site-packages/django/forms/models.py" in __init__ > 698. queryset=qs) > File "/Library/Python/2.6/site-packages/django/forms/models.py" in __init__ > 423. super(BaseModelFormSet, self).__init__(**defaults) > File "/Library/Python/2.6/site-packages/django/forms/formsets.py" in __init__ > 47. self._construct_forms() > File "/Library/Python/2.6/site-packages/django/forms/formsets.py" in > _construct_forms > 97. self.forms.append(self._construct_form(i)) > File "/Library/Python/2.6/site-packages/django/forms/models.py" in > _construct_form > 711. form = super(BaseInlineFormSet, > self)._construct_form(i, **kwargs) > File "/Library/Python/2.6/site-packages/django/forms/models.py" in > _construct_form > 447. kwargs['instance'] = self.get_queryset()[i] > File "/Library/Python/2.6/site-packages/django/db/models/query.py" in > __getitem__ > 172. return self._result_cache[k] > > Exception Type: IndexError at /mixture/13/edit/ > Exception Value: list index out of range > > Here's the POST data, in case anyone can see anything obvious there: > account u'1' > comments u'' > comps-0-concentration u'20%' > comps-0-customermixture u'13' > comps-0-gas u'Benzene' > comps-0-id u'16' > comps-0-solubility u'' > comps-1-concentration u'20%' > comps-1-customermixture u'13' > comps-1-gas u'Acetaldehyde' > comps-1-id u'17' > comps-1-solubility u'' > comps-2-concentration u'Balance' > comps-2-customermixture u'13' > comps-2-gas u'Carbon Dioxide' > comps-2-id u'18' > comps-2-solubility u'' > comps-INITIAL_FORMS u'3' > comps-MAX_NUM_FORMS u'' > comps-TOTAL_FORMS u'3' > csrfmiddlewaretoken u'3...a' #redacted > engineering_controls u'1' > hazard_warning u'2' > name u'Sample Mixture3' > -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.