Django

Code

Changeset 7345

Show
Ignore:
Timestamp:
03/21/08 11:06:41 (6 months ago)
Author:
mtredinnick
Message:

queryset-refactor: Correctly inherit m2m fields from abstract base classes.
Based on a patch from cide@ctmod.net. Fixed #6844.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/queryset-refactor/django/db/models/base.py

    r7339 r7345  
    2020from django.utils.encoding import smart_str, force_unicode, smart_unicode 
    2121from django.conf import settings 
     22 
     23try: 
     24    set 
     25except NameError: 
     26    from sets import Set as set     # Python 2.3 fallback 
    2227 
    2328class ModelBase(type): 
     
    101106                new_class._meta.parents[base] = field 
    102107            else: 
    103                 names = [f.name for f in new_class._meta.local_fields + new_class._meta.many_to_many] 
    104                 for field in base._meta.local_fields: 
     108                # The abstract base class case. 
     109                names = set([f.name for f in new_class._meta.local_fields + new_class._meta.many_to_many]) 
     110                for field in base._meta.local_fields + base._meta.local_many_to_many: 
    105111                    if field.name in names: 
    106112                        raise FieldError('Local field %r in class %r clashes with field of similar name from abstract base class %r'