2016-04-26 18 views
0

Hier ist der Code in FrageSet Beziehung Attribute Keine nach Sitzung in SQLAlchemy geschlossen ist

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) 

Ich möchte eine Instanz von Staat konvertieren JSon und während Land (Verhältnis in State-Klasse) Umwandlung sollte nur umgewandelt werden wenn es geladen ist, sollte es sonst keiner sein.

Wenn ich versuche, dies zu json zu konvertieren, wünsche ich nur diese Beziehung überprüfen geladen werden oder nicht

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

Es wirft Ausnahme sqlalchemy.orm.exc.DetachedInstanceError. Ist es möglich, None (oder prüfen, ob das Attribut bereits geladen ist oder nicht) für dieses Attribut anstelle der Ausnahme zu erhalten. Ich möchte es nicht lazy laden, wenn die Sitzung geschlossen ist (Wenn ich es laden wollte, hätte ich vor dem Schließen der Sitzung geladen).

Antwort

0

Wenn Sie die Instanz abgelöst haben, können Sie die folgende Bedingung überprüfen:

"country" in state.__dict__ 
Verwandte Themen