[英]Odoo 10 - Search method
我不明白为什么在这里起作用:
# 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
为什么呢
谢谢
该错误是因为您使用的是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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.