执行带有错误延迟加载sqlalchemy的查询字符串

时间:2016-03-06 09:25:36

标签: python django sqlalchemy

首次使用此查询时,我获得了有效的查询结果,但我再次刷新页面时出现此错误:

Parent instance is not bound to a Session; lazy load operation of attribute 'City' cannot proceed

这是我的疑问:

SELECT p.ID AS 'persons_ID', p.FirstName AS 'persons_FirstName', p.LastName AS 'persons_LastName',
                        p.NationalCode AS 'persons_NationalCode', p.CityID AS 'persons_CityID', p.Mobile AS 'persons_Mobile',
                        p.Address AS 'persons_Address', cities_1.ID AS 'cities_1_ID', cities_1.Name AS 'cities_1_Name',
                        cities_1.ParentID AS 'cities_1_ParentID', cities_2.ID AS 'cities_2_ID', cities_2.Name AS 'cities_2_Name',
                        cities_2.ParentID AS 'cities_2_ParentID' , cast(@row := @row + 1 as unsigned) as 'persons_row_number'

                FROM Persons p LEFT OUTER JOIN cities AS cities_2 ON cities_2.ID = p.CityID
                LEFT OUTER JOIN cities AS cities_1 ON cities_1.ID = cities_2.ParentID , (select @row := 0) as init

执行查询:

 lst = ses.query(Persons).options(joinedload('City')).from_statement(query).all()

型号:

class Persons(Base):


    __tablename__ = 'persons'

    ID = Column(Integer, primary_key=True)
    FirstName = Column(String(50))
    LastName = Column(String(100))
    NationalCode = Column(String(10))
    CityID = Column(Integer, ForeignKey('cities.ID'))
    Mobile = Column(String(10))
    Address = Column(String(10))

    City = relationship("Cities",lazy="joined",join_depth=2, uselist=False)

    CitiesModel = Cities()

    ProvinceID = None

    HashID = None
    row_number = None

0 个答案:

没有答案