运行 self._cr.execute 在计算领域

Run self._cr.execute on Compute Field

在 Odoo 12 上,我正在尝试 运行 self._cr.execute 计算,但 return 我 Null,我尝试了域并且正在工作,但是因为我将使用的查询是复杂的我需要用 SQL 查询来完成。

    _inherit ='purchase.order.line'  

    partner1 = fields.Many2one('res.partner', string='Vendor 1', compute='_compute_vendors', copy = True, store=True, readonly= False)
    partner2 = fields.Many2one('res.partner', string='Vendor 2', compute='_compute_vendors', copy = True, store=True, readonly= False)
    partner3 = fields.Many2one('res.partner', string='Vendor 3', compute='_compute_vendors', copy = True, store=True, readonly= False)

    @api.depends('product_id')
    def _compute_vendors(self):
        vendors = []
        vendors.append(self._cr.execute("""SELECT partner_id FROM purchase_order_line"""))

有什么解决办法吗?

执行returnNone,要检索您可以使用fetchall的选定记录:

  # first execute the query
  self._cr.execute("""SELECT partner_id FROM purchase_order_line""")
  # fetc rows
  vendors = [r[0] for r in self._cr.fetchall()]