Odoo 10 - Метод поиска - PullRequest
       7

Odoo 10 - Метод поиска

0 голосов
/ 12 октября 2018

Я не понимаю, почему здесь это работает:

# Fonction qui récupère la valeur du champs booléen inscription de l'année précédente
    @api.depends('half_pension')
    def _retrieve_halfpension_previous(self):
        records = self.env['ecole.partner.school'].search([])
        for record in records:
            record.half_pension_previous = record.half_pension

И здесь у меня есть ожидаемая ошибка, синглтон:

# Fonction qui récupère la valeur du champs booléen inscription de l'année précédente
    @api.depends('half_pension')
    def _retrieve_halfpension_previous(self):
        records = self.env['ecole.partner.school'].search([('id', '<', self.id)])
        for record in records:
            record.half_pension_previous = record.half_pension

Почему?

Спасибо Вам

1 Ответ

0 голосов
/ 13 октября 2018

Ошибка в том, что вы используете self.id, где self - это набор записей, содержащий более одного значения.Обычно, чтобы решить эту проблему, вам нужно выполнить итерацию набора записей в себе, чтобы получить доступ к каждому полю записи следующим образом:

@api.depends('half_pension')
def _retrieve_halfpension_previous(self):
    for rec in self:
        records = self.env['ecole.partner.school'].search([('id', '<', rec.id)])
        for record in records:
            record.half_pension_previous = record.half_pension

Но в этом случае будет нормально найти максимальный идентификатор записей в себе, чтобы использовать еговсего за один поиск, например:

@api.depends('half_pension')
def _retrieve_halfpension_previous(self):
    max_id = max([rec.id for rec in self])
    records = self.env['ecole.partner.school'].search([('id', '<', max_id)])
    for record in records:
        record.half_pension_previous = record.half_pension
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...