2017-02-09 87 views
1

我有兩個班,TrialIdentifierTimeCoursesqlalchemy.exc.InvalidRequestError:映射器「...」沒有財產「...」

時間進程具有含TrialIdentifier一個實例變量,我想設置兩者之間的外鍵關係。

在TrialIdentifier

__tablename__ = 'trial_identifiers' 

relationships = relationship('TimeCourse', 
          back_populates = 'trial_identifier', uselist = False) 

在時間進程

__tablename__ = 'time_course' 

trial_identifier_id = Column(Integer, ForeignKey('trial_identifiers.id')) 
trial_identifier = relationship('TrialIdentifier', back_populates = 'relationships')` 

如果我的名字在TimeCourse變量trial_identifier以下錯誤被拋出:

sqlalchemy.exc.InvalidRequestError: Mapper 'Mapper|TimeCourse|time_course' has no property 'trial_identifier' 

如果我還有它命名爲任何東西,一切正常。整個程序包建立在TimeCourse().trial_identifier上,所以我想盡可能避免重構它。或者至少了解這種行爲。

回答

0

trial_identifier是一個專用變量,定義爲_trial_identifier

要麼除去setter和getter,或者與

_trial_identifier = relationship('TrialIdentifier', back_populates = 'relationships')` 

替換

trial_identifier = relationship('TrialIdentifier', back_populates = 'relationships')` 

解決了這個問題