Функции, логика, декораторы - m3dbedb/odoo GitHub Wiki
Логика записей работает с использованием декоратора @api.multi
В таком случае вместо указателя self
подставляются набор записей, и можно сделать перебор все записей.
@api.multi
def do_toggle_done(self):
for task in self:
task.is_done = not task.is_done
return True
Если требуется произвести действие над всеми записями, отвечающими определённому условию, применяется декоратор @api.model
.
В таком случае self
представляет модель. Далее формируется условия отбора записей, и производится действие над отобранными записями сразу, что эффективнее перебора и последовательного изменения по одной.
@api.model
def do_clear_done(self):
dones = self.search([('is_done', '=', True)])
dones.write({'active': False})
return True
Примеры взяты здесь