我在模型 sale.order
中有一个按钮,用于执行方法 action_open_certification_views
。此方法打开 sale.certification
树视图。因此,该方法返回打开 sale.certification
视图的操作的字典,并且我添加了以下上下文以自动填充 sale.certification
字段(sale_id
和 line_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
为空。谁能告诉我为什么?尽管它们应该由它们自己填写,但我是否也必须在上下文中指定它们的值?