为什么 One2many 字段的默认行没有在 Odoo 13 中自动填写相关和默认值?

时间:2021-04-21 16:13:50

标签: python-3.x xml odoo odoo-13

我在模型 sale.order 中有一个按钮,用于执行方法 action_open_certification_views。此方法打开 sale.certification 树视图。因此,该方法返回打开 sale.certification 视图的操作的字典,并且我添加了以下上下文以自动填充 sale.certification 字段(sale_idline_ids ,其中 line_ids 是指向 sale.certification.line) 的 One2many 字段:

def action_open_certification_views(self):
    ...
    action['context'] = {
        'default_name': 'My Certification',
        'default_sale_id': self.id,
        'default_line_ids': [
            (0, 0, {
                'quantity': 5.0,
                'sale_line_id': line.id,
            }) for line in self.order_line
        ],
    }
    return action

当我点击按钮时,sale.certification 树视图会在右侧打开,如果点击 Create 按钮,操作的上下文运行良好,因为我看到 {{ 1}} 表单自动填写默认名称​​我的认证,销售订单的正确链接,与销售订单行相同数量的认证行具有销售订单。每条认证行的数量为5.0,销售订单行的链接也是正确的。

问题在于 sale.certification 模型有许多其他相关字段或具有默认值,但这些由操作上下文默认填充的认证行并未填充这些字段。

例如,sale.certification.line 模型中有另一个字段 quantity2,并且在视图中可见,默认情况下始终采用 1.0。但是,该字段在所有默认行中都是空的。相关领域也有同样的问题。视图中有一些相关字段通过 sale.certification.line 字段获取它们的值。这些都填好了,但是相关的字段还是空的。例如,在`sale.certification.line 模型中有这个字段:

sale_line_id

尽管在所有行中都将 product_uom = fields.Many2one( related='sale_line_id.product_uom', ) 填写为 OK,但它们的 sale_line_id 为空。谁能告诉我为什么?尽管它们应该由它们自己填写,但我是否也必须在上下文中指定它们的值?

0 个答案:

没有答案
相关问题