2017-03-01 124 views
2

我有一個調用一個函數來獲取默認值(模塊project_forecast)字段:如何覆蓋默認功能

def default_user_id(self): 
    return self.env.user if ("default_user_id" not in self.env.context) else self.env.context["default_user_id"] 

user_id = fields.Many2one('res.users', string="User", required=True, 
          default=default_user_id) 

我創建另一個模塊繼承它,並更改默認值字段user_id但它沒有在日誌中沒有任何錯誤,我該如何解決這個問題?

def default_user_id(self): 
    return False 

回答

2

你直接在字段定義鏈接的方法。因此,重寫該方法是不夠的。只是default重新定義字段user_id作爲唯一的參數和OFC你的新方法:

的原始模型:

class MyModel(models.Model): 
    _name = "my.model" 

    def default_user_id(self): 
     return self.env.context.get("default_user_id", self.env.user) 

    user_id = fields.Many2one(
     comodel_name='res.users', string="User", required=True, 
     default=default_user_id) 

繼承的模型:

class MyModelInherit(models.Model): 
    _inherit = "my.model" 

    def default_user_id(self): 
     return self.env['res.users'] 

    user_id = fields.Many2one(default=default_user_id) 
+0

我解決它通過結合2個回答: 'user_id = fields.Many2one(default = lambda self:False)' –

3

請檢查該

user_id = fields.Many2one('res.users', string='User',readonly=True, default=lambda self: self.env.user)