gpt4 book ai didi

python - 如何解决列 res_partner. 在 Odoo 中不存在?

转载 作者:太空宇宙 更新时间:2023-11-04 04:24:15 25 4
gpt4 key购买 nike

例如,“reonp”很好地添加到模型中,但是当我尝试添加“gradjanin”时,Odoo 10 引发错误

image of code/error

我正在尝试重启服务器

class komPartnerrReon(models.Model):
_inherit = 'res.partner'

reonp = fields.Many2one('kom.reon')
gradjanin = fields.Boolean('Gradjanin', default=False) #There was an error after adding this line of code

错误

  File "C:\odoo-10.0\odoo\sql_db.py", line 231, in execute
res = self._obj.execute(query, params)
ProgrammingError: column res_partner.gradjanin does not exist
LINE 1: ...id" as "parent_id","res_partner"."name" as "name","res_partn...

最佳答案

这实际上是您在扩展模型时遇到的经典错误 res.partner有新领域。

在启动 Odoo 服务器时,每个模块 python 文件都将被“加载”,因此您的新字段当然在 res.partner 上, 也。但这仅在 python 方面或在应用程序本身方面更好。现在尝试使用该应用程序或“在 Odoo 的网络客户端中加载某些内容”将尝试从数据库加载数据,其中新字段没有相应的列。

例如登录。在登录时,Odoo 将加载正在登录的用户。模型 res.users继承整个模型res.partner , 因此 Odoo 正在尝试加载 res.partner来自数据库的数据。并发出错误消息。

如果已经登录,也会发生这种情况。例如,在带有聊天的模型的公式 View 中。喋喋不休加载追随者,他们是合作伙伴,所以发出错误消息。

你能做些什么来解决这个问题?

在服务器启动时更新模块

带有参数-u (如果系统中有多个数据库 -d )

odoo -c <path_to_config> -u my_module -d my_database

如果那不可能

例如在生产系统中或者因为 Odoo 作为服务启动,尝试启动第二个实例,它只会更新模块并在之后立即停止。

odoo -c <path_to_config> -u my_module -d my_database --max-cron-threads=0 --stop-after-init --no-xmlrpc

这就像一个“ self 毁灭”的 headless Odoo 实例。参数--no-xmlrpc将是 --no-http在 Odoo V11+ 中。

告诉数据库中的 Odoo 更新模块/应用程序。

UPDATE ir_module_module set state = 'to upgrade' where name = 'my_module';

之后重启 Odoo。

或者棘手的方法:

只需进入应用程序菜单并打开您的模块/应用程序。重新启动 Odoo 并更新模块/应用程序。这是最快的方法,但你猜对了,你有时会忘记这样做。而且它只在你收到错误之前起作用;-)

关于python - 如何解决列 res_partner.<column> 在 Odoo 中不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53816484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com