3
我得到(可能是微不足道的)錯誤,但對可能的原因完全無能爲力。我想用SQLAlchemy在數據庫中插入兩個對象。這些對象是相關的,這裏是聲明。類用戶:插入兩個相關的對象在SQLAlchemy中失敗
class User(Base):
__tablename__ = 'cp_user'
id = Column(Integer, Sequence('id_seq'), primary_key=True)
# ... more properties
類圖片(用戶可能有很多人):
class Picture(Base):
__tablename__ = 'picture'
id = Column(Integer, Sequence('id_seq'), primary_key=True)
authorId = Column('author_id', Integer, ForeignKey('cp_user.id'))
author = relation(User, primaryjoin = authorId == User.id)
# ... more properties
我試圖插入新畫面,我取從數據庫中正確的用戶後,或剛剛創造了它:
s = newSession()
user = s.query(User.name).filter("...some filter here...").first()
if not(user):
user = User()
s.add(user)
s.commit()
picture = Picture()
picture.author = user
s.add(picture)
s.commit()
這失敗例外:AttributeError: 'RowTuple' object has no attribute '_sa_instance_state'
我試着將作者的賦值移至構造函數 - 同樣的錯誤。我無法直接分配ID - 這打破了ORM的想法。
我該怎麼做?
謝謝,用User.name替換用戶幫助!我以爲我瘋了,但現在它工作:) – 2009-10-14 22:14:55