﻿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
10249	Cannot create a consistent method resolution order (MRO) for bases FieldFile, File	Karen Tracey	Armin Ronacher	"Originally reported here: http://groups.google.com/group/django-users/browse_thread/thread/33dababaeb3b6ca7#

Easily recreatable:

{{{
Python 2.5.1 (r251:54863, Jul 31 2008, 23:17:40) 
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type ""help"", ""copyright"", ""credits"" or ""license"" for more information.
(InteractiveConsole)
>>> from ttt.models import FileT
>>> from django.core.files import File
>>> f = open('ttt/models.py')
>>> f.read()
""from django.db import models\n\n# Create your models here.\nclass FileT(models.Model):\n    name = models.CharField(max_length=22)\n    file = models.FileField(upload_to='tmp')\n\n""
>>> FileT.objects.create(name='x',file=File(f))
Traceback (most recent call last):
  File ""<console>"", line 1, in <module>
  File ""/home/kmt/tmp/django/trunk/django/db/models/manager.py"", line 99, in create
    return self.get_query_set().create(**kwargs)
  File ""/home/kmt/tmp/django/trunk/django/db/models/query.py"", line 352, in create
    obj.save(force_insert=True)
  File ""/home/kmt/tmp/django/trunk/django/db/models/base.py"", line 328, in save
    self.save_base(force_insert=force_insert, force_update=force_update)
  File ""/home/kmt/tmp/django/trunk/django/db/models/base.py"", line 388, in save_base
    values = [(f, f.get_db_prep_save(raw and getattr(self, f.attname) or f.pre_save(self, True))) for f in meta.local_fields if not isinstance(f, AutoField)]
  File ""/home/kmt/tmp/django/trunk/django/db/models/fields/files.py"", line 184, in pre_save
    file = super(FileField, self).pre_save(model_instance, add)
  File ""/home/kmt/tmp/django/trunk/django/db/models/fields/__init__.py"", line 179, in pre_save
    return getattr(model_instance, self.attname)
  File ""/home/kmt/tmp/django/trunk/django/db/models/fields/files.py"", line 135, in __get__
    (file.__class__, FieldFile), {})
TypeError: Cannot create a consistent method resolution
order (MRO) for bases FieldFile, File
>>> 
}}}

Behavior was introduced in r9766, the create() works in r9765.  I do not know enough about the code here to know if any fix for the other r9766-related tickets (#10121, #10179, #10196) would fix this, figured it might be worth its own ticket."		closed	Database layer (models, ORM)	1.2-beta		fixed		marcelo@…	Accepted	0	0	0	0	0	0
