Odoo 中的内部服务器错误

Internal Server Error in Odoo

我正在使用 Odoo 10.0 (python)。每次我的源码出现错误XML或python,这种情况总是存在:

我在 Odoo 官方页面上找到了解决方案: (https://www.odoo.com/forum/help-1/question/internal-server-error-the-server-encountered-an-internal-error-and-was-unable-to-complete-your-request-either-the-server-is-ov-55081) 它有效,但这个解决方案并不好,因为我总是不得不删除 "addons" 中的错误模块。这需要花费大量的时间和精力。

所以我期待更简单的解决方案。 非常感谢您的帮助

Odoo 将在其日志中使用堆栈跟踪生成更好的错误消息。您应该使用它来解决您的 xml 问题。

通常您在更新(自定义)模块时会遇到 xml 错误。因此,如果您可以使用 psql 访问数据库,只需使用以下查询:

UPDATE ir_module_module SET state='installed' WHERE state='to upgrade'

如果模块还没有安装:

UPDATE ir_module_module SET state='uninstalled' WHERE state='to upgrade'

假设您升级了模块并且遇到了内部服务器错误。您找到了错误所在,但无法访问应该再次更新模块的屏幕。

首先,我认为如果在更新过程中发生错误,则更新不会完成。因此,如果您重新启动服务器,更新将 运行 再次返回,您的问题将得到解决。

如果您的模块没有以这种方式自动更新,只需在更新模块时重启服务器,就像这样./odoo-bin -u your_module

如果您使用 ./odoo-bin 到 start/stop 您的服务器,那么在您必须转到浏览器获取 之前,命令行实际上会警告您错误内部服务器错误 通知。

看起来像这样:

当您的 Odoo 应用程序出现错误时,它将如下所示:

Error之后会出现Traceback (most recent call last):然后是导致错误的traceback,或者是发生了什么导致错误。

回溯的最后一行是错误消息,在本例中为:AssertionError: The report...already exists.。您可以在 Google 或 Whosebug 上搜索特定错误,以获取一些可能的错误解决方案。

但是要回答你的问题,你在得到这个错误后可以做的是点击 CTRL+C 两次来杀死服务器。对您的模块进行必要的更改,然后使用 -d 数据库标志和 -u 标志重新启动模块以更新您的模块。

所以完整的命令看起来像:

./odoo-bin -d database_name -u module_name_1,module_name_2

等待服务器启动,如果没有出现错误,您可以转到浏览器加载您的 Odoo 实例。

实际上,此错误的存在是因为我的 XML 或 py 文件中存在错误,因此我必须在该文件中修复它们,然后在 "service" 中重新启动服务器 odoo。问题彻底解决。谢谢