You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo从v12经OpenUpgrade迁移至v13后出现KeyError: 'last_path_node'

Odoo 12迁移至13后点击菜单触发Internal Server Error(KeyError: 'last_path_node')

问题详情

  • 通过OpenUpgrade完成Odoo v12到v13的实例迁移,全程无报错
  • 修改自定义模块代码后,执行以下命令更新模块,操作未出现错误:
python3 odoo-bin --addons-path="./addons, ./extra_addons, ./OCA/contract" -p 8069 -d database_name -u module_name
  • Odoo实例可正常加载主界面,但点击主菜单元素(如「联系人」)时,页面弹出Internal Server Error,日志中出现KeyError: 'last_path_node'报错

错误上下文

错误上下文:
视图 App Drawer - Web Client
[view_id: 941, xml_id: web_responsive.webclient_bootstrap, model: n/a, parent_id: 178]

完整错误日志

2022-09-08 13:33:39,610 19400 INFO wimax13 werkzeug: 127.0.0.1 - - [08/Sep/2022 13:33:39] "GET /web HTTP/1.1" 500 - 386 0.534 1.152
2022-09-08 13:33:39,973 19400 ERROR wimax13 werkzeug: Error on request:
Traceback (most recent call last):
  File "/home/ernesto/Programming/odoo/wimax13/lib/python3.6/site-packages/werkzeug/serving.py", line 270, in run_wsgi
    execute(self.server.app)
  File "/home/ernesto/Programming/odoo/wimax13/lib/python3.6/site-packages/werkzeug/serving.py", line 258, in execute
    application_iter = app(environ, start_response)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/service/server.py", line 439, in app
    return self.app(e, s)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/service/wsgi_server.py", line 142, in application
    return application_unproxied(environ, start_response)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/service/wsgi_server.py", line 117, in application_unproxied
    result = odoo.http.root(environ, start_response)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/http.py", line 1287, in __call__
    return self.dispatch(environ, start_response)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/http.py", line 1257, in __call__
    return self.app(environ, start_wrapped)
  File "/home/ernesto/Programming/odoo/wimax13/lib/python3.6/site-packages/werkzeug/wsgi.py", line 766, in __call__
    return self.app(environ, start_response)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/http.py", line 1457, in dispatch
    result = ir_http._dispatch()
  File "/home/ernesto/Programming/odoo/wimax13/addons/website/models/ir_http.py", line 172, in _dispatch
    response = super(Http, cls)._dispatch()
  File "/home/ernesto/Programming/odoo/wimax13/addons/auth_signup/models/ir_http.py", line 19, in _dispatch
    return super(Http, cls)._dispatch()
  File "/home/ernesto/Programming/odoo/wimax13/addons/web_editor/models/ir_http.py", line 21, in _dispatch
    return super(IrHttp, cls)._dispatch()
  File "/home/ernesto/Programming/odoo/wimax13/addons/utm/models/ir_http.py", line 29, in _dispatch
    response = super(IrHttp, cls)._dispatch()
  File "/home/ernesto/Programming/odoo/wimax13/addons/http_routing/models/ir_http.py", line 519, in _dispatch
    result = super(IrHttp, cls)._dispatch()
  File "/home/ernesto/Programming/odoo/wimax13/odoo/addons/base/models/ir_http.py", line 238, in _dispatch
    return cls._handle_exception(e)
  File "/home/ernesto/Programming/odoo/wimax13/addons/utm/models/ir_http.py", line 34, in _handle_exception
    response = super(IrHttp, cls)._handle_exception(exc)
  File "/home/ernesto/Programming/odoo/wimax13/addons/http_routing/models/ir_http.py", line 610, in _handle_exception
    return super(IrHttp, cls)._handle_exception(exception)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/addons/base/models/ir_http.py", line 206, in _handle_exception
    return request._handle_exception(exception)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/http.py", line 750, in _handle_exception
    return super(HttpRequest, self)._handle_exception(exception)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/http.py", line 310, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/home/ernesto/Programming/odoo/wimax13/odoo/tools/pycompat.py", line 14, in reraise
    raise value
  File "/home/ernesto/Programming/odoo/wimax13/odoo/addons/base/models/ir_http.py", line 234, in _dispatch
    result = request.dispatch()
  File "/home/ernesto/Programming/odoo/wimax13/odoo/http.py", line 809, in dispatch
    r = self._call_function(**self.params)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/http.py", line 350, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/http.py", line 342, in checked_call
    result.flatten()
  File "/home/ernesto/Programming/odoo/wimax13/odoo/http.py", line 1236, in flatten
    self.response.append(self.render())
  File "/home/ernesto/Programming/odoo/wimax13/odoo/http.py", line 1229, in render
    return env["ir.ui.view"].render_template(self.template, self.qcontext)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/addons/base/models/ir_ui_view.py", line 1191, in render_template
    return self.browse(self.get_view_id(template)).render(values, engine)
  File "/home/ernesto/Programming/odoo/wimax13/addons/website/models/ir_ui_view.py", line 336, in render
    return super(View, self).render(values, engine=engine, minimal_qcontext=minimal_qcontext)
  File "/home/ernesto/Programming/odoo/wimax13/addons/web_editor/models/ir_ui_view.py", line 27, in render
    return super(IrUiView, self).render(values=values, engine=engine, minimal_qcontext=minimal_qcontext)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/addons/base/models/ir_ui_view.py", line 1199, in render
    return self.env[engine].render(self.id, qcontext)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/addons/base/models/ir_qweb.py", line 58, in render
    result = super(IrQWeb, self).render(id_or_xml_id, values=values, **context)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/addons/base/models/qweb.py", line 260, in render
    self.compile(template, options)(self, body.append, values or {})
  File "<decorator-gen-54>", line 2, in compile
    
  File "/home/ernesto/Programming/odoo/wimax13/odoo/tools/cache.py", line 90, in lookup
    value = d[key] = self.method(*args, **kwargs)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/addons/base/models/ir_qweb.py", line 113, in compile
    return super(IrQWeb, self).compile(id_or_xml_id, options=options)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/addons/base/models/qweb.py", line 277, in compile
    element, document = self.get_template(template, options)
  File "/home/ernesto/Programming/odoo/wimax13/odoo/addons/base/models/qweb.py", line 364, in get_template
    path = options['last_path_node']
KeyError: 'last_path_node'

内容的提问来源于stack exchange,提问作者Ernesto Ruiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:35:29