📜  如何将新记录中的值返回到 odoo - Python (1)

📅  最后修改于: 2023-12-03 15:38:45.973000             🧑  作者: Mango

如何将新记录中的值返回到 odoo

在 Odoo 中,我们有时需要将新记录的值返回,并在以后的逻辑中使用。下面是一些方法来实现这个目的。

使用 create() 方法

当我们使用 create() 方法创建新记录时,该方法将返回一个包含新创建记录的字典。我们可以使用这个字典来获得相关字段的值。

new_record_dict = self.env['my.model'].create({'field1': 'value1', 'field2': 'value2'})
field1_value = new_record_dict['field1']
field2_value = new_record_dict['field2']
使用 onchange() 方法

当我们使用 onchange() 方法创建新记录时,该方法将返回一个包含新创建记录的字典。我们可以使用这个字典来获得相关字段的值。

@api.onchange('field1')
def onchange_method(self):
    new_record_dict = self.env['my.model'].new({'field1': 'value1', 'field2': 'value2'})
    field1_value = new_record_dict['field1']
    field2_value = new_record_dict['field2']
使用 create() 方法和 with_context() 方法

当我们使用 create() 方法创建新记录时,我们还可以使用 with_context() 方法来为新记录添加上下文。这个上下文将与新记录一起返回,我们可以使用这个上下文获得相关值。

new_record = self.env['my.model'].with_context(my_context={'my_key': 'my_value'}).create({'field1': 'value1', 'field2': 'value2'})
my_value = new_record.env.context.get('my_context', {}).get('my_key')
使用 return 返回值

当我们使用 create()write() 方法创建或更新记录时,这些方法将返回创建或更新的记录的 ID。我们可以使用这个 ID 来获得记录并获得相关值。

new_record_id = self.env['my.model'].create({'field1': 'value1', 'field2': 'value2'}).id
new_record = self.env['my.model'].browse(new_record_id)
field1_value = new_record.field1