2012-06-15 66 views
0

的孩子,我有三大類:PurchaseOrder的,PurchaseOrderLine,項目SQLAlchemy的 - 過濾基於孩子

PurchaseOrder的孩子PurchaseOrderLine這是關係到項目。

pos = DBSession.query(m_po.PO).filter(or_(
      m_po.PO.number == query, 
      m_po.POLine.item.code == query 
     )).join(m_po.POLine).join(m_im.Item) 

給我...

AttributeError: Neither 'InstrumentedAttribute' object nor 'Comparator' object has an attribute 'code' 

回答

1

假設:

m_po = PurchaseOrder 
m_pol = PurchaseOrderLine 
m_it = Item 

,而且關係之間的那些定義,你應該能夠做到這一點如下(未測試) :

pos = (DBSession.query(m_po.PO). 
    join(m_pol, m_po.POLine). 
    join(m_it, m_pol.Items). 
    filter(or_(
     m_po.PO.number == query, 
     m_it.code == query, 
    )) 

注:我有些困惑,你的代碼中的m_im代表

+0

m_po,m_im或類所在的模塊。m_po(模塊採購訂單),m_im(模塊庫存管理)。我應該更好地解釋你的答案給了我我要找的感謝! – Ominus