Я пытаюсь написать систему регистрации, которая использует динамические классы для создания таблиц.Получение созданных классов и созданных таблиц, кажется, работает нормально, но попытка поместить в них записи приводит к сообщению об ошибке, касающемуся сопоставления, ниже приведен пример кода и сообщение об ошибке.
Base = declarative_base()
#my init function
def tableinit(self,keyargs):
self.__dict__ = dict(keyargs)
#table creation
tableName = "newTable"
columnsDict["__tablename__"] = tableName
columnsDict["__init__"] = tableinit
columnsDict["id"] = Column("id",Integer, autoincrement = True, nullable = False, primary_key=True)
columnsDict["pid"] = Column("pid",Integer, ForeignKey('someparenttable.id')) #someparenttable is created with a hard coded class
newTable = type(tableName,(Base,),columnsDict)
tableClassDict[tableName]=newTable
#when doing an entry
newClassInst = subEntryClassDict[tableName]
newEntry = newClassInst(dataDict)
entryList.append(newEntry) # this is called in a for loop with the entries for someparenttable's entries also
self.session.add_all(entryList) # at this point the error occurs
Ошибка:
UnmappedInstanceError: Класс 'newTable' сопоставлен, но в этом экземпляре отсутствует инструментарий.Это происходит, когда экземпляр создается до вызова sqlalchemy.orm.mapper (module.newTable).