openerp - TypeError:<lambda>()得到了一个意外的关键字参数'read_group_order </lambda>

时间:2014-01-26 00:16:07

标签: python-2.7 openerp odoo

添加这些行时,

显示以下错误:openerp 7

    _group_by_full = {
        'stage_id': lambda *args:['diagnostico','autorizado'],
    }

显示以下错误

TypeError: <lambda>() got an unexpected keyword argument 'read_group_order'

1 个答案:

答案 0 :(得分:4)

鉴于您提供的内容,我唯一能做的就是给您一个广泛的答案。匿名函数(lambda)的结构如下:

lambda argument1,argument2,... argumentN:使用参数的表达式

您的错误表明lambda期待一个关键字参数(kwargs),但您只将位置参数(args)传递给该函数。话虽这么说,你可能想尝试这个代码:

_group_by_full = {
    'stage_id': lambda *args, **kwargs:['diagnostico','autorizado'],
}

话虽如此,我认为这不会完全解决您的问题,它解决了这个问题:

在:

>>> x = lambda *args:['diagnostico','autorizado']
>>> x('one','two')
['diagnostico', 'autorizado']
>>> x('one','two', keyword='keyword')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: <lambda>() got an unexpected keyword argument 'keyword'

在:

>>> x = lambda *args, **kwargs:['diagnostico','autorizado']
>>> x('one','two', keyword='keyword')
['diagnostico', 'autorizado']

但正如您所看到的,您的函数将始终返回相同的列表。如果这些应该是你的论点,你将不得不相应地重写它,不要忘记函数:)。希望这可以帮助。更多关于lambda here