2016-07-20 3 views
0

これは私がはSQLAlchemyのエラーに参加執筆:sqlalchemy.exc.InvalidRequestErrorを:私は、このクエリが動作するようになった

class Candidate(Base): 
    __tablename__ = 'candidates' 
    id = Column(Integer, primary_key=True) 
    first = Column(String, nullable=False) 
    last = Column(String) 
    title = Column(String) 
    company = Column(String, nullable=False) 


    def __repr__(self): 
    return "<Candidate(first='%s', last='%s', title = '%s', company='%s')>" % (self.first, self.last, self.title, self.company) 

## Add user 
morgan = Candidate(first='john', last='doe', title='some_title', company='some_company') 
session.add(morgan) 
session.commit() 

を作成した最初のテーブルです:

morgan = session.query(Candidate).filter(Candidate.first=='morgan').first() 

しかし、私は、第二を追加しますテーブル、それは動作を停止します。

class Roles(Base): 
    __tablename__ = 'role' 
    id = Column(Integer, primary_key=True) 
    role = Column(String, nullable=False) 
    user_id = Column(Integer, ForeignKey('candidates.id')) 

    user = relationship("Candidate", back_populates="role") 

    def __repr__(self): 
    return "<Roles(role='%s')>" % (self.role) 

私はこれで何か間違ったことをやっていると仮定しています:

Candidate.role = relationship("Roles", order_by=Roles.id, back_populates='user') 

が再び

morgan = session.query(Candidate).filter(Candidate.first=='morgan').first() 

この検索を試してみて、私はこのエラーを取得

sqlalchemy.exc.InvalidRequestError: One or more mappers failed to initialize - can't proceed with initialization of other mappers. Original exception was: Mapper 'Mapper|Candidate|candidates' has no property 'role' 

答えて

0

私はかなり新しいSQLAlchemyですが、私はあなたはロールテーブルの下であなたの参加関係を更新する必要があります:

user = relationship("Candidate", back_populates="role", order_by=id). 
関連する問題