Hi, it seems to be an actual django bug, the example at the address https://docs.djangoproject.com/en/1.10/topics/db/models/#meta-inheritance does not work correctly, from django.db import models class BaseCategory(models.Model): title = models.CharField(max_length=100) class Meta: abstract = True ordering = ['title'] class Category(BaseCategory): name = models.CharField(max_length=100) class Meta(BaseCategory.Meta): ordering = ['name'] db_table = 'samble' Category.Meta.ordering is equal to ['title'], Category.Meta.db_table is undefined and Category.Meta.abstract is correctly set to false, in fact Category.Meta is of type BaseCategory.Meta. A stranger behavior is when `abstract = True` is added to the subclass : class Category(BaseCategory): name = models.CharField(max_length=100) class Meta(BaseCategory.Meta): abstract = True ordering = ['name'] db_table = 'sample' Now the behavior is correct (if abstract was not set) : Category.Meta.db_table = 'sample', Category.Meta.ordering = ['name'] but Category.Meta.abstract = False, Category.Meta is of type Category.Meta So additionally it is impossible to create an abstract class inheriting an abstract class. Tested with django 1.8, 1.9, 1.10, 1.10.1 and python 2.7, 3.4