Запустите self._cr.execute в поле вычислений

На Odoo 12 я пытаюсь запустить self._cr.execute на вычислении, но верните мне 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"""))

Любое решение?


person Fotic    schedule 28.01.2020    source источник


Ответы (1)


Выполните return None, чтобы получить выбранные записи, вы можете использовать функцию 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()]
person Charif DZ    schedule 29.01.2020