在Odoo8中更新Create Function的值

时间:2015-08-01 13:43:18

标签: python openerp odoo

我想在保存表单时更新字段记录。我试着编写一个将新值保存在SAVE按钮上的函数。但价值观似乎没有更新。我的代码如下:

@api.model
    def create(self,values):        
        for obj in self.passports_ids:
            data=obj.passports_number   
            values.update({'passport_id':data})
        res_id=super(hrEmployee, self).create(values)   
        return res_id

请帮我解释一下我的错误。谢谢

2 个答案:

答案 0 :(得分:0)

嗨,Arsalan Sherwani,

你做错了路。因为self不存在于数据库中,

尝试以下代码:

@api.model
def create(self,values):
      for record in self.passports_ids:
          self.passport_id = record.passports_number   
    res_id=super(hrEmployee, self).create(values)   
    return res_id

如果passport_id是many2one字段,那么你需要分配对象,但如果passport_id是char字段,那么上面的代码就可以了。

贝斯茨

答案 1 :(得分:0)

你应该尝试以下,

我不知道passports_ids所属的型号名称,因此您只需更换相应的型号名称。

@api.model
def create(self,values):        
    passports_ids = values.get('passports_ids',False)
    if not passports_ids:
        return super(hrEmployee, self).create(values)

    for obj in self.env['passport_model_name'].browse(passports_ids):
        data=obj.passports_number   
        values.update({'passport_id':data})
    return super(hrEmployee, self).create(values)