﻿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
14760	Admin inlines with file/image field fails to save_as	paulos	nobody	"How to reproduce:
 * declare an admin inline which ""model"" property referes to a model containing an image field and another char field
 * declare a parent ModelAdmin having save_as=True
 * in the admin, create and save a new parent with one or more inlines
 * try to save_as

Result:
 * the form does not validate, image or file field will be empty with error: ""This field is required."", extra inlines gone.
 * if you try to upload other file admin blows up with ValueError: invalid literal for int() with base 10: ''

Test case:
- dummy/models.py
{{{
from django.db import models

class Foo(models.Model):
    name = models.CharField(max_length=30)

class Bar(models.Model):
    parent = models.ForeignKey(Foo)
    title = models.CharField(max_length=30)
    img = models.ImageField(upload_to='testpath')
}}}
- dummy/admin.py
{{{
from django.contrib import admin
from bugtest.dummy.models import *

class BarInline(admin.StackedInline):
    model = Bar

class FooAdmin(admin.ModelAdmin):
    inlines = (BarInline,)
    save_as = True

admin.site.register(Foo, FooAdmin)
}}}

Traceback:
{{{
Django Version: 1.2.3
Python Version: 2.6.5
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.admin',
 'django.contrib.admindocs',
 'bugtest.dummy',
]
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')

File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/core/handlers/base.py"" in get_response
  100.                     response = callback(request, *callback_args, **callback_kwargs)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/contrib/admin/options.py"" in wrapper
  239.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/utils/decorators.py"" in _wrapped_view
  76.                     response = view_func(request, *args, **kwargs)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/views/decorators/cache.py"" in _wrapped_view_func
  69.         response = view_func(request, *args, **kwargs)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/contrib/admin/sites.py"" in inner
  190.             return view(request, *args, **kwargs)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/utils/decorators.py"" in _wrapper
  21.             return decorator(bound_func)(*args, **kwargs)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/utils/decorators.py"" in _wrapped_view
  76.                     response = view_func(request, *args, **kwargs)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/utils/decorators.py"" in bound_func
  17.                 return func(self, *args2, **kwargs2)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/db/transaction.py"" in _commit_on_success
  299.                     res = func(*args, **kw)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/contrib/admin/options.py"" in add_view
  792.                                   prefix=prefix, queryset=inline.queryset(request))
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/forms/models.py"" in __init__
  704.                                                 queryset=qs)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/forms/models.py"" in __init__
  429.         super(BaseModelFormSet, self).__init__(**defaults)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/forms/formsets.py"" in __init__
  47.         self._construct_forms()
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/forms/formsets.py"" in _construct_forms
  97.             self.forms.append(self._construct_form(i))
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/forms/models.py"" in _construct_form
  717.         form = super(BaseInlineFormSet, self)._construct_form(i, **kwargs)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/forms/models.py"" in _construct_form
  448.                 connection=connections[self.get_queryset().db])
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/db/models/fields/subclassing.py"" in inner
  53.             return func(*args, **kwargs)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/db/models/fields/subclassing.py"" in inner
  53.             return func(*args, **kwargs)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/db/models/fields/__init__.py"" in get_db_prep_lookup
  306.             value = self.get_prep_lookup(lookup_type, value)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/db/models/fields/__init__.py"" in get_prep_lookup
  292.             return self.get_prep_value(value)
File ""/usr/local/lib/python2.6/dist-packages/Django-1.2.3-py2.6.egg/django/db/models/fields/__init__.py"" in get_prep_value
  479.         return int(value)
}}}

"	Bug	new	contrib.admin	1.2	Normal			mortas.11@… mathijs@… bmihelac@…	Accepted	1	0	0	1	0	0
