我正在尝试获取当前用户名,以便验证发票,我正在编写此代码
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:要解压缩的值太多
错误在哪里?
答案 0 :(得分:2)
您的方法签名两次都是错误的。功能字段方法签名是:
def _my_func(self, cr, uid, ids, field, arg, context = None):
您的原始方法缺少ids参数,而您的第二个缺少ID,字段和arg。请注意,字段和arg参数几乎从不使用。
实际的错误消息有点误导,但是python试图匹配作为方法签名的参数传递的元组中的项目数。