所以我有以下情况。我有一个具有以下结构的类DataTypes:sqlAlchemy模型的问题
class DataType(Base):
__tablename__ = 'DATA_TYPES'
id = Column(Integer, primary_key=True)
type_name = Column(String)
fk_result_storage = Column(Integer, ForeignKey('DATA_STORAGES.id'))
parentDataStorage = relationship("DataStorage", backref=backref("DataType", cascade="all,delete"))
def __init__(self, name, resultId):
self.type_name = name
self.fk_result_storage = resultId
现在这里定义的关系有效。但是现在我有一些特定的数据类型,它们是通过内省动态创建的,并且还需要级联删除。他们是这样创建的:
t = Table('DATA_' + obj.__name__.lower(), *t[:-1], **t[-1])
mapper(obj, t, *args, **kwargs)
model.Base.metadata.create_all(dao.Engine)
这工作正常,并根据需要创建表。但是现在我想添加一个类似于DataType类的关系 。所以,我想这一点:
t = T('DATA_' + obj.__name__.lower(), *t[:-1], **t[-1])
M(obj,t,properties = {'children' : relationship('DataType', backref=backref(obj, cascade="all,delete"))})
model.Base.metadata.create_all(dao.Engine)
但是这给了我:
sqlalchemy.exc.InvalidRequestError: One or more mappers failed to initialize - can't proceed with initialization of other mappers. Original exception was: relationship 'children' expects a class or a mapper argument (received: <type 'str'>)
我真的很新的SQLAlchemy的。有什么建议么 ?
问候, 波格丹
你需要使用'的obj .__名字__是,较低的'的(),而不是'obj'宣布孩子的关系是什么时候?关于那部分的一些东西似乎没有,但我承认我对sqlalchemy的经验有限。 – chmullig 2011-05-11 13:47:13