Openerp 如何覆盖odoo新api中字段的默认函数

Openerp 如何覆盖odoo新api中字段的默认函数,openerp,odoo-9,Openerp,Odoo 9,我有一个字段,用于调用函数以获取默认值(在模块project\u forecast中): 我创建了另一个模块来继承它,并更改了字段user_id的默认值,但它在日志中没有任何错误就无法工作,我如何解决这个问题 def default_user_id(self): return False 请检查这个 您直接在字段定义上链接方法。因此,重写该方法已经不够了。只需再次定义字段user\u id,将default作为唯一参数,并使用新方法: 原始模型: 类MyModel(models.Mod

我有一个字段,用于调用函数以获取默认值(在模块project\u forecast中):

我创建了另一个模块来继承它,并更改了字段user_id的默认值,但它在日志中没有任何错误就无法工作,我如何解决这个问题

def default_user_id(self):
    return False
请检查这个


您直接在字段定义上链接方法。因此,重写该方法已经不够了。只需再次定义字段
user\u id
,将
default
作为唯一参数,并使用新方法:

原始模型:

类MyModel(models.Model):
_name=“my.model”
def默认用户id(自身):
返回self.env.context.get(“默认用户id”,self.env.user)
用户id=fields.manyOne(
comodel_name='res.users',string=“User”,required=True,
默认值=默认值(用户id)
继承的模型:

类MyModelInherit(models.Model):
_继承=“my.model”
def默认用户id(自身):
返回self.env['res.users']
user\u id=fields.manyOne(默认值=default\u user\u id)

我通过组合两个答案解决了这个问题:
user\u id=fields.manyOne(默认值=lambda self:False)
def default_user_id(self):
    return False
user_id = fields.Many2one('res.users', string='User',readonly=True, default=lambda self: self.env.user)