gpt4 book ai didi

python - sqlAlchemy 模型的问题

转载 作者:行者123 更新时间:2023-12-02 03:03:10 24 4
gpt4 key购买 nike

所以我有以下情况。我有一个 DataTypes 类,其结构如下:

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

现在这里定义的关系可以工作了。但现在我有一些通过内省(introspection)动态创建的特定数据类型,并且也需要级联删除。它们是这样创建的:

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 还很陌生。有什么建议吗?

问候,博格丹

最佳答案

SQLAlchemy 不是我最强的技能,但我认为这个属性是错误的:

properties = {'children' : relationship('DataType', backref=backref(obj, cascade="all,delete"))}

我认为应该是:

properties = {'children' : relationship(DataType, backref=backref(obj, cascade="all,delete"))}

即,对 DataType 的引用是类,而不是字符串。

关于python - sqlAlchemy 模型的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5965244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com