Odoo 8 - O campo de computação com "store = True" não pode armazenar no banco de dados
estou a usarOdoo 8
e eu tenho um problema comcompute field
com o tipo éMany2One
.
Aqui eu declareidepartment_id
:
department_id = fields.Text(
string="Department", store=True,
comodel_name="hr.department",
compute="_get_department_id"
)
E a função deste campo de computação:
@api.depends('employee_id')
def _get_department_id(self):
if self.employee_id.department_id:
self.department_id = self.employee_id.department_id.name
Parece funcionar agora, mas não está. Em vista, posso ver o valor dedepartment_id
. Mas no banco de dados, a tabela não possui colunadepartment_id
e não tem valor para esta coluna.
Minha pergunta é: como posso armazenar odepartment_id
no banco de dados?
Notas:
Na declaração dedepartment_id
, Eu colocostore=True
, mas NÃO armazenou o valor desse campo no banco de dados.Eu fiz um teste Eu adicionocompute_field
com tipoText
, Funciona, não sei por que o campo de computação não funciona com o tipoMany2One
.
@api.depends('employee_id')
def _get_compute_field(self):
if self.employee_id.department_id:
self.compute_field = self.employee_id.department_id.name
compute_field = fields.Text(
string="Compute Field", store=True,
compute="_get_compute_field"
)