0

我有三个类:PurchaseOrder、PurchaseOrderLine、Item

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 回答