Odoo 8 - "store=True" 的计算字段无法存储在数据库中

Odoo 8 - Compute Field with "store=True" can't store in database

我正在使用 Odoo 8,但 compute field 有问题,类型是 Many2One

在这里,我声明department_id

department_id = fields.Text(
    string="Department", store=True,
    comodel_name="hr.department",
    compute="_get_department_id"
)

以及这个计算域的功能:

@api.depends('employee_id')
def _get_department_id(self):
    if self.employee_id.department_id:
        self.department_id = self.employee_id.department_id.name

它现在似乎可以工作,但事实并非如此。在视图中,我可以看到department_id的值。但是在数据库中,table没有列department_id,也没有这个列的值。

我的问题是:如何将 department_id 存储在数据库中?

备注:

store=True 有效。 可能是您在数据库上创建字段后将计算添加到该字段。在这种情况下,不会触发初始计算。

解决方法是从 table 中删除该列,然后升级您的模块。重新创建字段时,应计算初始值。