我有以下两种模式。在
class Stop(Base):
'''
Class Model for Stops
'''
__tablename__ = 'STOPS'
uid = Column('uid', Integer, primary_key=True, autoincrement=False)
category_code = Column('category_code', String(60), nullable=False)
以及
^{pr2}$当我试图使用下面的代码从两个表中删除数据时,我得到了以下错误
session.query(StopName).delete()
session.query(Stop).delete()
New instance <Stop at 0xf593d50> with identity key (<class 'harmonize_station_id.core.model.Stop'>, (400000000,)) conflicts with persistent instance <Stop at 0x3bdd850>
我也试着用cascade
stop = relationship("Stop", backref = 'name',cascade="delete")
我得到以下错误。在
AttributeError: 'StopName' object has no attribute '_sa_instance_state'.
出现此问题是因为StopName的对象类型不匹配。在这里,我将客户机的Stop对象转换为服务器的Stop对象(数据库模型). 但我错过了StopName对象的相同转换。所以,它试图从它的客户端表示中创建StopName。所以,我显式地将它转换为服务器端的StopName。它解决了这个问题。 所以基本上,当sqlalchemy将其他类型的对象解释为ORM对象时,object has no attribute''u sa_instance_state'错误就会出现。在
相关问题 更多 >
编程相关推荐