如何在odoo 9中获取one2many的active_id?

时间:2017-03-26 10:57:25

标签: openerp odoo-8 odoo-9

在下面的方法complete_operation我曾经打印过活动ID,但它显示None。我想显示mrp.production的当前ID。 mrp.operationsmrp.production的one2many字段。

class mrpProduction(models.Model):
    _inherit = "mrp.production"

    end_date = fields.Datetime('Scheduled End Date') 
    operations = fields.One2many('mrp.operations','operation_id', 'Operations')  


class mrpOperations(models.Model):
    _name = "mrp.operations"

    name = fields.Many2one("custom.operations", "Operation Name")
    status = fields.Selection([('Completed','Completed'),('Pending','Pending')],'Status')
    operation_id = fields.Integer()

    @api.multi
    def complete_operation(self):  
        print self.id
        active_id=self.env.context.get('active_id')
        print active_id,'--'

2 个答案:

答案 0 :(得分:0)

这里 operation_id 如果将operation_id更改为mrp.production的many2one模型,则可以保存当前的mrp.production标识

答案 1 :(得分:0)

在上下文中还有一个名为active_ids的变量。 active_id实际上是active_ids [0]。

        active_ids=self.env.context.get('active_ids')