>>> class MyUser(db.Document): ... name = db.StringField() ... meta = {'allow_inheritance': True} ... >>> class MyBoss(MyUser): ... pass ... >>> class MyAdmin(MyUser): ... pass ... >>> class MySupport(MyUser): ... pass ... >>> boss = MyBoss(name='boss') >>> admin = MyAdmin(name='admin') >>> support = MySupport(name='support') >>> boss.save() >>> admin.save() >>> support.save() >>> boss._cls 'MyUser.MyBoss' >>> admin._cls 'MyUser.MyAdmin' >>> support._cls 'MyUser.MySupport' >>> for _user in MyUser.objects: ... print(_user._cls, _user.name) ... MyUser.MyAdmin admin MyUser.MyBoss boss MyUser.MySupport support >>> support._cls = 'MyUser.MyAdmin' >>> support.save() >>> support = MyUser.objects.get(name='support') >>> support >>>