Използвам 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
. Но в базата данни таблицата няма колона department_id
и няма стойност на тази колона.
Въпросът ми е: как мога да съхраня department_id
в база данни?
Бележки:
- В декларацията на
department_id
зададохstore=True
, но то НЕ съхранява стойността на това поле в базата данни. Направих тест. Добавям
compute_field
с типText
, работи, не знам защо изчислителното поле не работи с типMany2One
.@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" )