Python 在函数头上调用@api

Python 在函数头上调用@api,python,odoo,odoo-8,odoo-10,Python,Odoo,Odoo 8,Odoo 10,所以,我正在处理这个对象,他从另一个对象继承 奥多v8 所以当我尝试启动这个测试代码时 他告诉我这个错误 Expected singleton: my.inherit.object ('lang', 'tz', 'params', 'uid', 'active_model') 我能做些什么来解决这个问题,所有字段都正常工作,处理也正常工作,但它会停止并向我显示一个错误。self。确保创建一个,以确保只传递一条记录。它检查当前记录是否为单例记录(因此只有一条记录,而不是多条记录) 如果self包

所以,我正在处理这个对象,他从另一个对象继承 奥多v8

所以当我尝试启动这个测试代码时 他告诉我这个错误

Expected singleton: my.inherit.object ('lang', 'tz', 'params', 'uid', 'active_model')

我能做些什么来解决这个问题,所有字段都正常工作,处理也正常工作,但它会停止并向我显示一个错误。

self。确保创建一个
,以确保只传递一条记录。它检查当前记录是否为单例记录(因此只有一条记录,而不是多条记录)

如果self包含多条记录,系统将抛出一个错误

您可以尝试使用以下代码:

@api.multi
def _default_group(self):
    self.ensure_one()
    # your logic start from here
试试这个:

for line_groups in user_c:
    for rec in self:
        if line_groups.cd_id == rec.cd_id:
            groups.append(line_groups.group_id.id)
    domain['group_id'] = [('id', 'in', groups)]

如果您的方法
\u default\u group
用作默认方法-获取字段的默认值-
self
是一个空记录集。但是您正在使用
self
作为单例,例如在
中('year\u id','=',self.year\u id)
。那不行。要在默认值方法中获得像year之类的值,您必须找到一种方法来解决
self

是同一件事,他仍然向我显示错误singletonI为相同的错误写了一篇博客。因此,它可能有助于将来调试如何调用该方法
\u default\u group
。它的目的是什么?
for line_groups in user_c:
    for rec in self:
        if line_groups.cd_id == rec.cd_id:
            groups.append(line_groups.group_id.id)
    domain['group_id'] = [('id', 'in', groups)]