📅  最后修改于: 2023-12-03 15:38:45.973000             🧑  作者: Mango
在 Odoo 中,我们有时需要将新记录的值返回,并在以后的逻辑中使用。下面是一些方法来实现这个目的。
当我们使用 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()
方法创建新记录时,该方法将返回一个包含新创建记录的字典。我们可以使用这个字典来获得相关字段的值。
@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()
方法来为新记录添加上下文。这个上下文将与新记录一起返回,我们可以使用这个上下文获得相关值。
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')
当我们使用 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