Orm 创建方法odoo8的概念

Orm 创建方法odoo8的概念,orm,odoo-8,Orm,Odoo 8,我在使用odoo方面是新手,所以我面临着对create方法的重写,但仍然不太理解这个概念。 这是我使用的创建方法: @api.model def create(self, vals): vals['task_idd'] = self.env['crane.task'].create({'equipment_id': vals['equipment_id'], 'type': vals['type']}).id vals['task_ids'] = [(4, vals['task_

我在使用odoo方面是新手,所以我面临着对create方法的重写,但仍然不太理解这个概念。 这是我使用的创建方法:

@api.model
def create(self, vals):
    vals['task_idd'] = self.env['crane.task'].create({'equipment_id': vals['equipment_id'], 'type': vals['type']}).id
    vals['task_ids'] = [(4, vals['task_idd'])]
    return super(crane_workorder, self).create(vals)
这段代码工作得很好 我有一个one2many关系,它已经转换成one2one(逻辑上),所以我重写create方法,直到我可以从两个不同的类创建两个记录为止。。。
PS1:设备id和类型是必填字段,但我不明白它是如何工作的…

如果你的意思是包含一个元组的列表是如何给出所需结果的
[(4,VAL['task\u idd'])]
,这是我的理解

当Odoo创建或写入一个记录(该记录是一个关系字段)时,Odoo使用一个命令语法,该语法是您在代码中使用的结构。基本上,当从任何特定记录的角度编写或创建相关字段时,Odoo会通过创建一系列特定的命令来消除歧义

例如,如果您需要写入One2many字段,Odoo应该如何知道您是否正在将新记录添加到许多其他记录的列表中,或者您是说相关记录的列表就是您在代码中引用的新记录

想象一下,你有一棵树,它的苹果和树有着千丝万缕的联系。如果您正在向一个数据库写入记录树的另一个苹果,您是说该苹果将被添加到现有苹果列表中,还是说它将取代现有列表,并应被视为属于该树的唯一苹果

因此,Odoo使用这个元组结构,并有一个过程来解析元组,确定如何处理其值以及向数据库写入什么

这里是一个屏幕截图的文件奥多提供的问题。这里是链接到


问题是一般性的,你不明白什么?它将值作为一个参数,这是一个字典,键作为字段的名称和值,特别是对关系字段的处理这正是我一直在寻找的!我已经将其应用于其他型号,效果非常好,非常感谢。