如何在one2many odoo 13上触发compute

2024-09-29 21:41:33 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我的代码: 我也试过倒场,但也没用。此外,我无法创建继承sale.order的另一个类,因为这是一个瞬态模型,所以无法工作。请帮忙,我是奥多的新手

class WizardDraft(models.TransientModel):
    _name = 'wizard.draft'

    sale_order_lines =  fields.One2many('sale.order', compute="_compute_sale_orders")

    @api.model
    def _compute_sale_orders(self):
        self.sale_order_lines = self.env['sale.order'].search([('state', '=', 'draft')])

Tags: 代码模型selfmodelsordersaleclassdraft
1条回答
网友
1楼 · 发布于 2024-09-29 21:41:33

You cannot use One2Many relation of Models(models.Model) in Transient Model(models.TransientModel) because Transient model stores data temporarily and it flushes out. So Many2one you create in Transient Model is not a good idea.

所以在本例中,您可以在瞬态模型(wizard.draft)中使用许多模型(sale.order),并将其设置为计算字段

class WizardDraft(models.TransientModel):
    _name = 'wizard.draft'

    sale_order_lines =  fields.Many2many('sale.order', compute="_compute_sale_orders")

    @api.model
    def _compute_sale_orders(self):
        self.sale_order_lines = self.env['sale.order'].search([('state', '=', 'draft')])

相关问题 更多 >

    热门问题