2016-04-26 39 views
0

關閉後,這裏是有問題的代碼設置關係屬性爲無會話中的SQLAlchemy

class Country(ModelBase): 
    __tablename__ = "countries" 

    code = Column(String(64), nullable=False) 
    display_name = Column(String(64), nullable=False) 


class State(ModelBase): 
    __tablename__ = "states" 

    code = Column(String(64), nullable=False) 
    display_name = Column(String(64), nullable=False) 
    country_id = Column(Integer, ForeignKey(Country.id), nullable=False) 
    country = relationship(Country) 

我想轉換狀態的實例,以JSON和轉換時的國家(在州級關係)只應轉換如果它載入,否則它應該是None。

當我嘗試將其轉換爲JSON,我只想查看這種關係被加載與否

if state.country is None: # Or some other way of checking 

它產生異常sqlalchemy.orm.exc.DetachedInstanceError。是否有可能得到None(或者檢查屬性是否已經加載),而不是異常。我不想在會話關閉後懶加載它(如果我想加載它,我會在關閉會話之前加載它)。

回答

0

如果你已經脫離的情況下,您可以檢查以下條件:

"country" in state.__dict__