Changeset 7846 for django/trunk/django/db/models/base.py
- Timestamp:
- 07/06/08 06:55:30 (5 months ago)
- Files:
-
- django/trunk/django/db/models/base.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/db/models/base.py
r7814 r7846 32 32 "Metaclass for all models" 33 33 def __new__(cls, name, bases, attrs): 34 # If this isn't a subclass of Model, don't do anything special. 35 try: 36 parents = [b for b in bases if issubclass(b, Model)] 37 except NameError: 38 # 'Model' isn't defined yet, meaning we're looking at Django's own 39 # Model class, defined below. 40 parents = [] 34 super_new = super(ModelBase, cls).__new__ 35 parents = [b for b in bases if isinstance(b, ModelBase)] 41 36 if not parents: 42 return super(ModelBase, cls).__new__(cls, name, bases, attrs) 37 # If this isn't a subclass of Model, don't do anything special. 38 return super_new(cls, name, bases, attrs) 43 39 44 40 # Create the class. 45 41 module = attrs.pop('__module__') 46 new_class = type.__new__(cls, name, bases, {'__module__': module})42 new_class = super_new(cls, name, bases, {'__module__': module}) 47 43 attr_meta = attrs.pop('Meta', None) 48 44 abstract = getattr(attr_meta, 'abstract', False)
