0

PurchaseOrder、PurchaseOrderLine、Item の 3 つのクラスがあります。

PurchaseOrder の子は、Item に関連する 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'
4

1 に答える 1

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あなたのコードで何を表しているのか少し混乱しています。

于 2012-06-17T21:44:40.163 に答える