Odoo 10-搜索方法

时间:2018-10-12 13:43:46

标签: python odoo

我不明白为什么它会起作用:

# 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

在这里,我有一个预期的单例错误:

Vue.prototype.$store = store;

为什么?

谢谢

1 个答案:

答案 0 :(得分:0)

该错误是因为您正在使用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

但是在这种情况下,可以自行找到记录的最大id,以便仅在一次搜索中使用它,例如:

@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