如何解决预期的单例:sezonekip错误pycharm
这是我的代码,出现单例错误。我正在尝试建立足球数据库,并在此功能中尝试根据比赛结果更新球队排名。
@api.multi
@api.depends('gola_home','gola_away')
def perditeso_piket(self):
for record in self:
if record.gola_home > record.gola_away:
self.sezonekip_home_id.fitore += 1
self.sezonekip_away_id.humbje += 1
elif record.gola_home == record.gola_away:
self.sezonekip_home_id.barazime += 1
self.sezonekip_away_id.barazime+=1
else:
self.sezonekip_home_id.humbje += 1
self.sezonekip_away_id.fitore+=1
解决方法
您正在正确使用/编程它。在self
上循环是安全的方法,因为它可能是多记录记录集。但是您后来错过了在增量中使用record
。
这些增量仅是在字段中设置一个新值。但是,如果self
是多记录记录集(而不是单个记录记录集,称为单例),则Odoo不允许直接写入/更新。因此,只需将self
替换为record
即可:
@api.depends('gola_home','gola_away')
def perditeso_piket(self):
for record in self:
if record.gola_home > record.gola_away:
record.sezonekip_home_id.fitore += 1
record.sezonekip_away_id.humbje += 1
elif record.gola_home == record.gola_away:
record.sezonekip_home_id.barazime += 1
record.sezonekip_away_id.barazime+=1
else:
record.sezonekip_home_id.humbje += 1
record.sezonekip_away_id.fitore+=1
,
经常发生的错误。 当您想更改记录时,它会像您一样循环到自身,但是所有其他字段也必须记录在案 例子
def method(self):
for record in self:
record.first_name = "Mark"
record.last_name = "White"
这允许编辑该特定记录。例如,当前的注册表
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。