ValueError: "undefined get method !" while evaluating u'action_ship_create()' in Odoo
ValueError: "undefined get method !" while evaluating u'action_ship_create()' in Odoo
我有自定义模块,其中覆盖了 sale 模块的方法。
方法名称是action_ship_create()
这是我的代码:
def action_ship_create(self, cr, uid, ids, context=None):
res = super(sale_order, self).action_ship_create(cr, uid, ids, context=context)
#logic for passing value
return res
根据 订单政策 = 'picking' 下订单并点击 确认销售 按钮。我遇到了这个错误:
Exception during JSON request handling.
Traceback (most recent call last):
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 517, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 538, in dispatch
result = self._call_function(**self.params)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 294, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 291, in checked_call
return self.endpoint(*a, **kw)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 754, in __call__
return self.method(*args, **kw)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 387, in response_wrap
response = f(*args, **kw)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/web/controllers/main.py", line 953, in call_button
action = self._call_kw(model, method, args, {})
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/web/controllers/main.py", line 941, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/portal_sale/portal_sale.py", line 67, in action_button_confirm
return super(sale_order, self).action_button_confirm(cr, uid, ids, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/sale/sale.py", line 598, in action_button_confirm
self.signal_workflow(cr, uid, ids, 'order_confirm')
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/models.py", line 3483, in signal_workflow
result[res_id] = workflow.trg_validate(uid, self._name, res_id, signal, cr)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/__init__.py", line 85, in trg_validate
return WorkflowService.new(cr, uid, res_type, res_id).validate(signal)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/service.py", line 91, in validate
res2 = wi.validate(signal)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/instance.py", line 75, in validate
wi.process(signal=signal, force_running=force_running, stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 120, in process
ok = self._split_test(activity['split_mode'], signal, stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 248, in _split_test
self._join_test(t[0], t[1], stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 257, in _join_test
WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 95, in create
workflow_item.process(stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 120, in process
ok = self._split_test(activity['split_mode'], signal, stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 248, in _split_test
self._join_test(t[0], t[1], stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 257, in _join_test
WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 95, in create
workflow_item.process(stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 120, in process
ok = self._split_test(activity['split_mode'], signal, stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 248, in _split_test
self._join_test(t[0], t[1], stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 257, in _join_test
WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 95, in create
workflow_item.process(stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 116, in process
if not self._execute(activity, stack):
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 162, in _execute
returned_action = self.wkf_expr_execute(activity)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 313, in wkf_expr_execute
return self.wkf_expr_eval_expr(activity['action'])
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 291, in wkf_expr_eval_expr
result = eval(line, env, nocopy=True)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/tools/safe_eval.py", line 313, in safe_eval
return eval(c, globals_dict, locals_dict)
File "", line 1, in <module>
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 235, in wrapper
return new_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 552, in new_api
result = method(self._model, cr, uid, self.ids, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/playaround/test_sale_stock/sale.py", line 222, in action_ship_create
ret = super(sale_order, self).action_ship_create(cr, uid, ids, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/sale/sale.py", line 724, in action_ship_create
procurement_obj.run(cr, uid, proc_ids, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/stock/procurement.py", line 219, in run
self.pool.get('stock.move').action_confirm(cr, uid, move_to_confirm_ids, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/stock/stock.py", line 2126, in action_confirm
self._picking_assign(cr, uid, move_ids, procurement_group, location_from, location_to, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/stock/stock.py", line 2062, in _picking_assign
return self.write(cr, uid, move_ids, {'picking_id': pick}, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/purchase/stock.py", line 36, in write
res = super(stock_move, self).write(cr, uid, ids, vals, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/stock/stock.py", line 1937, in write
return super(stock_move, self).write(cr, uid, ids, vals, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 360, in old_api
result = method(recs, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/models.py", line 3700, in write
self._write(old_vals)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 235, in wrapper
return new_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 552, in new_api
result = method(self._model, cr, uid, self.ids, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/models.py", line 3942, in _write
self.pool[model_name]._store_set_values(cr, user, todo, fields_to_recompute, context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/models.py", line 4337, in _store_set_values
result = column.get(cr, self, ids, f, SUPERUSER_ID, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/osv/fields.py", line 196, in get
raise Exception(_('undefined get method !'))
ValueError: "undefined get method !" while evaluating
u'action_ship_create()'
任何想法或线索将不胜感激。
根据@AnderiBoyanov 的建议,我们使用 import pdb; pdb.set_trace()
进行调试,发现我在 stock.picking
上的选择字段有问题
所以我们刚刚改进了 stock.picking 上的选择字段,并且还改进了 stock.move
升级模块后,一切正常
我有自定义模块,其中覆盖了 sale 模块的方法。
方法名称是action_ship_create()
这是我的代码:
def action_ship_create(self, cr, uid, ids, context=None):
res = super(sale_order, self).action_ship_create(cr, uid, ids, context=context)
#logic for passing value
return res
根据 订单政策 = 'picking' 下订单并点击 确认销售 按钮。我遇到了这个错误:
Exception during JSON request handling.
Traceback (most recent call last):
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 517, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 538, in dispatch
result = self._call_function(**self.params)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 294, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 291, in checked_call
return self.endpoint(*a, **kw)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 754, in __call__
return self.method(*args, **kw)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/http.py", line 387, in response_wrap
response = f(*args, **kw)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/web/controllers/main.py", line 953, in call_button
action = self._call_kw(model, method, args, {})
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/web/controllers/main.py", line 941, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/portal_sale/portal_sale.py", line 67, in action_button_confirm
return super(sale_order, self).action_button_confirm(cr, uid, ids, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/sale/sale.py", line 598, in action_button_confirm
self.signal_workflow(cr, uid, ids, 'order_confirm')
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/models.py", line 3483, in signal_workflow
result[res_id] = workflow.trg_validate(uid, self._name, res_id, signal, cr)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/__init__.py", line 85, in trg_validate
return WorkflowService.new(cr, uid, res_type, res_id).validate(signal)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/service.py", line 91, in validate
res2 = wi.validate(signal)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/instance.py", line 75, in validate
wi.process(signal=signal, force_running=force_running, stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 120, in process
ok = self._split_test(activity['split_mode'], signal, stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 248, in _split_test
self._join_test(t[0], t[1], stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 257, in _join_test
WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 95, in create
workflow_item.process(stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 120, in process
ok = self._split_test(activity['split_mode'], signal, stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 248, in _split_test
self._join_test(t[0], t[1], stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 257, in _join_test
WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 95, in create
workflow_item.process(stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 120, in process
ok = self._split_test(activity['split_mode'], signal, stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 248, in _split_test
self._join_test(t[0], t[1], stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 257, in _join_test
WorkflowItem.create(self.session, self.record, activity, inst_id, stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 95, in create
workflow_item.process(stack=stack)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 116, in process
if not self._execute(activity, stack):
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 162, in _execute
returned_action = self.wkf_expr_execute(activity)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 313, in wkf_expr_execute
return self.wkf_expr_eval_expr(activity['action'])
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/workflow/workitem.py", line 291, in wkf_expr_eval_expr
result = eval(line, env, nocopy=True)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/tools/safe_eval.py", line 313, in safe_eval
return eval(c, globals_dict, locals_dict)
File "", line 1, in <module>
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 235, in wrapper
return new_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 552, in new_api
result = method(self._model, cr, uid, self.ids, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/playaround/test_sale_stock/sale.py", line 222, in action_ship_create
ret = super(sale_order, self).action_ship_create(cr, uid, ids, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/sale/sale.py", line 724, in action_ship_create
procurement_obj.run(cr, uid, proc_ids, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/stock/procurement.py", line 219, in run
self.pool.get('stock.move').action_confirm(cr, uid, move_to_confirm_ids, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/stock/stock.py", line 2126, in action_confirm
self._picking_assign(cr, uid, move_ids, procurement_group, location_from, location_to, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/stock/stock.py", line 2062, in _picking_assign
return self.write(cr, uid, move_ids, {'picking_id': pick}, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/purchase/stock.py", line 36, in write
res = super(stock_move, self).write(cr, uid, ids, vals, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/addons/stock/stock.py", line 1937, in write
return super(stock_move, self).write(cr, uid, ids, vals, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 360, in old_api
result = method(recs, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/models.py", line 3700, in write
self._write(old_vals)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 235, in wrapper
return new_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 552, in new_api
result = method(self._model, cr, uid, self.ids, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/models.py", line 3942, in _write
self.pool[model_name]._store_set_values(cr, user, todo, fields_to_recompute, context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/models.py", line 4337, in _store_set_values
result = column.get(cr, self, ids, f, SUPERUSER_ID, context=context)
File "/home/odoo/workspace/odoo-8.0-5ca7fa1/openerp/osv/fields.py", line 196, in get
raise Exception(_('undefined get method !'))
ValueError: "undefined get method !" while evaluating
u'action_ship_create()'
任何想法或线索将不胜感激。
根据@AnderiBoyanov 的建议,我们使用 import pdb; pdb.set_trace()
进行调试,发现我在 stock.picking
所以我们刚刚改进了 stock.picking 上的选择字段,并且还改进了 stock.move
升级模块后,一切正常