Я использую 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" )