2014-01-26 4 views
2

показывает мне следующее сообщение об ошибке при добавлении этих строк, OpenERP 7OpenERP - TypeError: <lambda>() получил неожиданный аргумент ключевого слова «read_group_order

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

показывает мне следующую ошибку

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

укажите весь код, этого кода недостаточно – user1576199

ответ

2

Учитывая то, что вы предоставили, единственное, что я могу сделать, это дать вам широкий ответ. Структура анонимных функций (лямбда) выглядит следующим образом:

лямбда argument1, argument2 ... argumentN: выражение, используя аргументы

Ваша ошибка указывает на то, что лямбда ожидал ключевое слово аргумент (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.