ProgrammingError:无法在方法中调整类型'account.invoice'

时间:2017-09-15 12:55:29

标签: openerp odoo-8 odoo-9

我想循环查看我的所有发票,但收到此错误。如果我更改inv [0] .id它可以工作但只循环第一张发票。我该如何让它循环所有发票。

 def generate(self):
        Invoice = self.env['account.invoice']
        inv = Invoice.browse(Invoice.search([]))
        invoice = inv and inv[0]
        for inv in invoice:
            root = etree.Element('000')
            po_code = etree.SubElement(root, '22')
            po_code.text = str(inv.id) or ''
            return root

ProgrammingError: can't adapt type 'account.invoice'

1 个答案:

答案 0 :(得分:0)

当我们致电self.env['account.invoice'].search([])时,我们将收到所有记录的记录集,这些记录存储在account.invoice模型中。将该记录集再次放入browse方法是多余的,因为此方法还返回记录集。此外,它不应该工作,因为browse方法期望您的id或列表。查看文档。

从现在开始,您只需通过for循环遍历记录集即可。每次您将从该记录集中获取一条记录,因此您只能操作它。

def generate(self):
    for record in self.env['account.invoice'].search([]):
        # go ahead with each record