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.

Reply via email to