“psycopg2.ProgrammingError:关系不存在«_unknown»”由Odoo 11中的onchange动作引起

时间:2018-05-19 08:01:53

标签: copy field upgrade onchange odoo

我在模型中(以及在视图中)登录和发送电子邮件。我正在尝试使用onchange操作复制电子邮件字段上的登录字段。但是当我升级Odoo时会出现错误:

Odoo Server Error

Traceback (most recent call last):
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 647, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 307, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\tools\pycompat.py", line 87, in reraise
    raise value
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 689, in dispatch
    result = self._call_function(**self.params)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 339, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\service\model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 332, in checked_call
    result = self.endpoint(*a, **kw)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 933, in __call__
    return self.method(*args, **kw)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 512, in response_wrap
    response = f(*args, **kw)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\web\controllers\main.py", line 934, in call_button
    action = self._call_kw(model, method, args, {})
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\web\controllers\main.py", line 922, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\api.py", line 689, in call_kw
    return call_kw_multi(method, model, args, kwargs)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\api.py", line 680, in call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-46>", line 2, in button_immediate_upgrade
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\module\module.py", line 71, in check_and_log
    return method(self, *args, **kwargs)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\module\module.py", line 602, in button_immediate_upgrade
    return self._button_immediate_function(type(self).button_upgrade)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\addons\base\module\module.py", line 541, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\registry.py", line 85, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py", line 339, in load_modules
    force, status, report, loaded_modules, update_module)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py", line 242, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py", line 135, in load_module_graph
    registry.init_models(cr, model_names, {'module': package.name})
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\registry.py", line 311, in init_models
    func()
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\fields.py", line 2404, in update_db_foreign_keys
    sql.add_foreign_key(cr, self.relation, self.column2, comodel._table, 'id', 'cascade')
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\tools\sql.py", line 150, in add_foreign_key
    cr.execute(query.format(tablename1, columnname1, tablename2, columnname2, ondelete))
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\sql_db.py", line 155, in wrapper
    return f(self, *args, **kwargs)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\sql_db.py", line 232, in execute
    res = self._obj.execute(query, params)
psycopg2.ProgrammingError: relation doesn´t exists «_unknown»

Y尝试使用其他字段,但错误始终相同。 字段没问题,我手动测试了两个字段。 这是我的onchange动作:

@api.onchange('login')
def on_change_login(self):
    self.email = self.login

1 个答案:

答案 0 :(得分:0)

在文件 odoo / odoo / fields.py 函数self.comodel_name == '_unknown'中添加条件为update_db_foreign_keys的断点,并检查 self 指的是< / p>