Changeset 8932
- Timestamp:
- 09/03/08 13:38:43 (4 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/db/models/base.py
r8908 r8932 95 95 field_names = set([f.name for f in new_fields]) 96 96 97 # Concrete classes...98 97 if not base._meta.abstract: 98 # Concrete classes... 99 99 if base in o2o_map: 100 100 field = o2o_map[base] … … 108 108 new_class._meta.parents[base] = field 109 109 110 # .. and abstract ones. 111 else: 112 # Check for clashes between locally declared fields and those on the ABC. 110 else: 111 # .. and abstract ones. 112 113 # Check for clashes between locally declared fields and those 114 # on the ABC. 113 115 parent_fields = base._meta.local_fields + base._meta.local_many_to_many 114 116 for field in parent_fields: … … 119 121 (field.name, name, base.__name__)) 120 122 new_class.add_to_class(field.name, copy.deepcopy(field)) 123 124 # Pass any non-abstract parent classes onto child. 125 new_class._meta.parents.update(base._meta.parents) 121 126 122 127 # Inherit managers from the abstract base classes. django/trunk/tests/regressiontests/model_inheritance_regress/models.py
r8908 r8932 77 77 class M2MChild(M2MBase): 78 78 name = models.CharField(max_length=50) 79 80 class Evaluation(Article): 81 quality = models.IntegerField() 82 83 class Meta: 84 abstract = True 85 86 class QualityControl(Evaluation): 87 assignee = models.CharField(max_length=50) 88 79 89 80 90 __test__ = {'API_TESTS':""" … … 243 253 [] 244 254 255 # All fields from an ABC, including those inherited non-abstractly should be 256 # available on child classes (#7588). Creating this instance should work 257 # without error. 258 >>> _ = QualityControl.objects.create(headline="Problems in Django", pub_date=datetime.datetime.now(), quality=10, assignee="adrian") 259 245 260 """}
