Odoo 迁移:addons/phone_validation

问题描述 投票:0回答:2

在我的 odoo 版本 13 中,我根据官方插件/phone_validation 使用自定义 OCA 模块:

class PhoneValidationMixin(models.AbstractModel):
    _inherit = "phone.validation.mixin"

迁移到 v16 后,我想重新安装此模块,但我收到此错误:

Odoo Server Error
Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/http.py", line 1584, in _serve_db
    return service_model.retrying(self._serve_ir_http, self.env)
  File "/home/odoo/src/odoo/odoo/service/model.py", line 133, in retrying
    result = func()
  File "/home/odoo/src/odoo/odoo/http.py", line 1611, in _serve_ir_http
    response = self.dispatcher.dispatch(rule.endpoint, args)
  File "/home/odoo/src/odoo/odoo/http.py", line 1815, in dispatch
    result = self.request.registry['ir.http']._dispatch(endpoint)
  File "/home/odoo/src/odoo/addons/website/models/ir_http.py", line 235, in _dispatch
    response = super()._dispatch(endpoint)
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
    result = endpoint(**request.params)
  File "/home/odoo/src/odoo/odoo/http.py", line 697, in route_wrapper
    result = endpoint(self, *args, **params_ok)
  File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 46, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 33, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 461, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 448, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-74>", line 2, in button_immediate_install
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
    return method(self, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 456, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 580, in _button_immediate_function
    registry = modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "<decorator-gen-14>", line 2, in new
  File "/home/odoo/src/odoo/odoo/tools/func.py", line 87, in locked
    return func(inst, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/modules/registry.py", line 90, in new
    odoo.modules.load_modules(registry, force_demo, status, update_module)
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 488, in load_modules
    processed_modules += load_marked_modules(cr, graph,
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 372, in load_marked_modules
    loaded, processed = load_module_graph(
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 197, in load_module_graph
    model_names = registry.load(cr, package)
  File "/home/odoo/src/odoo/odoo/modules/registry.py", line 247, in load
    model = cls._build_model(self, cr)
  File "/home/odoo/src/odoo/odoo/models.py", line 615, in _build_model
    raise TypeError("Model %r does not exist in registry." % name)
TypeError: Model 'phone.validation.mixin' does not exist in registry.

标准模型phone.validation.mixin似乎已经从odoo v16中消失了。 请问如何处理?

validation upgrade add-on migrate odoo-16
2个回答
0
投票

在这里您可以看到发生了什么以及如何更改代码以匹配手机验证功能的新位置

https://github.com/odoo/odoo/pull/63333/files

总之,手机验证码已移至此文件中

https://github.com/odoo/odoo/blob/16.0/addons/phone_validation/tools/phone_validation.py

你可以这样使用它:

from odoo.addons.phone_validation.tools import phone_validation
    ...
    fmt_number = phone_validation.phone_format(
        number, contact_country.code if contact_country else None,
        contact_country.phone_code if contact_country else None,
        force_format='INTERNATIONAL',
        raise_exception=False
    )
    ...

0
投票

我已经解决了它复制/粘贴 v13 模型:“phone.validation.mixin” OCA - 自定义模块而不是继承它:

class PhoneValidationMixin(models.AbstractModel):
    _name = 'phone.validation.mixin'
    # _inherit = "phone.validation.mixin"

© www.soinside.com 2019 - 2024. All rights reserved.