﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
14642	save_as=True and generic inline in admin gives IndexError	simon@…	nobody	"I have a model with a generic relation to another as below.

{{{
# models.py
class GenericObj(models.Model):
    content_type = models.ForeignKey(ContentType)
    object_id = models.PositiveIntegerField()
    content_object = generic.GenericForeignKey()

    text = models.CharField(max_length=50)


class ToObj(models.Model):
    text = models.CharField(max_length=50)

    obj_set = generic.GenericRelation(GenericObj)
}}}
In admin i have a form with an generic inline and save_as=True as below
{{{
# admin.py
class GenObjInline(generic.GenericTabularInline):
    model = GenericObj

class ToObjAdmin(admin.ModelAdmin):
    inlines = [GenObjInline, ]
    save_as = True

admin.site.register(ToObj, ToObjAdmin)
}}}

when i try to save as new in admin, i get an IndexError, list index out of range.

Traceback:
{{{
Environment:

Request Method: POST
Request URL: http://127.0.0.1:8000/admin/tsave/toobj/1/
Django Version: 1.2.3
Python Version: 2.6.4
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'tsave',
 'django.contrib.admin']
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')


Traceback:
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/core/handlers/base.py"" in get_response
  100.                     response = callback(request, *callback_args, **callback_kwargs)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/contrib/admin/options.py"" in wrapper
  239.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/utils/decorators.py"" in _wrapped_view
  76.                     response = view_func(request, *args, **kwargs)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/views/decorators/cache.py"" in _wrapped_view_func
  69.         response = view_func(request, *args, **kwargs)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/contrib/admin/sites.py"" in inner
  190.             return view(request, *args, **kwargs)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/utils/decorators.py"" in _wrapper
  21.             return decorator(bound_func)(*args, **kwargs)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/utils/decorators.py"" in _wrapped_view
  76.                     response = view_func(request, *args, **kwargs)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/utils/decorators.py"" in bound_func
  17.                 return func(self, *args2, **kwargs2)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/db/transaction.py"" in _commit_on_success
  299.                     res = func(*args, **kw)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/contrib/admin/options.py"" in change_view
  869.             return self.add_view(request, form_url='../add/')
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/utils/decorators.py"" in _wrapper
  21.             return decorator(bound_func)(*args, **kwargs)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/utils/decorators.py"" in _wrapped_view
  76.                     response = view_func(request, *args, **kwargs)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/utils/decorators.py"" in bound_func
  17.                 return func(self, *args2, **kwargs2)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/db/transaction.py"" in _commit_on_success
  299.                     res = func(*args, **kw)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/contrib/admin/options.py"" in add_view
  792.                                   prefix=prefix, queryset=inline.queryset(request))
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/contrib/contenttypes/generic.py"" in __init__
  318.             prefix=prefix
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/forms/models.py"" in __init__
  429.         super(BaseModelFormSet, self).__init__(**defaults)
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/forms/formsets.py"" in __init__
  47.         self._construct_forms()
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/forms/formsets.py"" in _construct_forms
  97.             self.forms.append(self._construct_form(i))
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/forms/models.py"" in _construct_form
  453.             kwargs['instance'] = self.get_queryset()[i]
File ""/media/filesrv/simon/hostit/envs/django1.2/lib/python2.6/site-packages/django/db/models/query.py"" in __getitem__
  172.             return self._result_cache[k]

Exception Type: IndexError at /admin/tsave/toobj/1/
Exception Value: list index out of range
}}}"	Bug	closed	contrib.contenttypes	1.4	Normal	fixed	save_as generic inline	Brillgen Developers Paul Oswald Patrick Kranzlmueller lorin Patrick K	Accepted	1	0	0	0	0	0
