如何覆盖odoo中的函数字段方法?

时间:2017-06-28 06:36:52

标签: function methods field odoo extend

填写时间表时我遇到了追溯错误。在R& D之后,我开始知道这是Odoo代码的问题。我将代码与最新代码进行了比较,发现了问题。

问题:

从函数字段调用该方法。我已成功覆盖它,但问题是,在覆盖之后,它首先调用Odoo的原始方法,然后调用我的重写方法。这就是为什么我面临同样的回溯错误。

以下是默认代码:

def _get_task(self, cr, uid, id, context=None):
   res = []
   for line in self.pool.get('account.analytic.line').search_read(cr,uid,[('task_id', '!=', False),('id','in',id)], context=context):
       res.append(line['task_id'][0])
   return res

这是我在Odoo修复错误后覆盖的代码:

def _get_task(self, cr, uid, id, context=None):
   res = []
   for line in self.pool.get('account.analytic.line').search_read(cr, uid,[('task_id', '!=', False), ('id', 'in', id)], ['task_id'], context=context):
       res.append(line['task_id'][0])
   return res

这两者之间的唯一区别是在search_read方法中添加的['task_id']。

有人可以帮我解决一下吗?

1 个答案:

答案 0 :(得分:1)

从字段"定义"中调用函数字段的函数。由于您从未更改过该定义,因此该字段对您的功能一无所知。只需定义字段,您就可以更改new的功能。但要注意完全定义它,因为在旧API中是必要的。