Expected singleton: salesman.period.kpi.line



我有这个错误预期的单例:salesman.period.kpi.line

这是我的py文件

class KpiLine(models.Model):
_name='salesman.period.kpi.line'
kpi_by_hr = fields.Float('KPI By Header')
check_field_line = fields.Boolean('Check', compute='get_user_line')

def get_user_line(self):
for line in self:
if self.env.user == line.kpi_id.user_id:
self.check_field_line = False
else:
self.check_field_line = True

这是我的xml

<field name="kpi_by_hr" attrs="{'readonly': [('check_field_line', '!=', True)]}" />

我的目标是使kpi_by_hr仅在创建者打开文档时只读,而不适用于其他

您已经在self上循环以将line作为Singleton。因此,将您的值分配给line而不是self

# wrong
self.check_field_line = False
# right
line.check_field_line = False

在计算方法调用中,self可以并且大部分将是多记录集,并且在Odoo 15之前,没有办法将值分配给多记录集的字段,而不使用update()write()。但这两种方法都不应该用在计算方法中。

编辑:尽量遵循Odoo的命名准则,并以其计算字段(如果不计算多个字段(命名计算方法:_compute_check_field_line

相关内容

  • 没有找到相关文章

最新更新