나는 (아마도 사소한) 오류가 발생하지만 가능한 원인에 대해서는 전혀 알지 못합니다. SQLAlchemy를 사용하여 DB에 두 개의 객체를 삽입하려고합니다. 이러한 객체는 관련되어 있습니다. 여기에 선언이 있습니다. 클래스 사용자 :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
나는 내가 DB에서 올바른 사용자를 가져온 한 후 새 그림을 삽입하려고, 또는 해요
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()
이 예외와 함께 실패합니다 : I 시도 AttributeError: 'RowTuple' object has no attribute '_sa_instance_state'
그냥 만들어 생성자에 대한 제작자의 할당 이동 - 동일한 오류. ID를 직접 할당 할 수 없습니다. ORM에 대한 아이디어가 없습니다.
내가 뭘 잘못 했니?
감사합니다. User.name을 User helped로 바꾸십시오! 나는 내가 미쳤다고 생각했지만 지금은 효과가있다. :) –