openerp ValueError:要解压缩的值太多

时间:2014-08-24 13:31:18

标签: python python-2.7 openerp openerp-7

我正在尝试获取当前用户名,以便验证发票,我正在编写此代码

class account_invoice(orm.Model):

    _name="account.invoice"
    _inherit="account.invoice"


    def _get_validated_user(self, cr, uid, field_name, arg, context):
        result={}
        current_user=self.pool.get('res.users').browse(cr, uid, uid, context=context)
        for user_id in current_user:
            if uid in current_user.id:
                result[current_user.id]=current_user.login
        # inv_obj=self.browse(cr,uid,ids)
        # user_name=inv_obj.write(cr, uid, {'validated_by': current_user})


    _columns = {
        'validated_by': fields.char('Validated_By',size=30),

        'user_name': fields.function(
            _get_validated_user,
            type='char',
            method=True,
            string='User Name'),
    }

当我尝试安装自定义模块时,我收到此错误

  

ValueError:要解压缩的值太多

错误在哪里?

1 个答案:

答案 0 :(得分:2)

您的方法签名两次都是错误的。功能字段方法签名是:

def _my_func(self, cr, uid, ids, field, arg, context = None):

您的原始方法缺少ids参数,而您的第二个缺少ID,字段和arg。请注意,字段和arg参数几乎从不使用。

实际的错误消息有点误导,但是python试图匹配作为方法签名的参数传递的元组中的项目数。