Odoo控制器继承



我正在努力解决简单的第一眼问题。我试图覆盖电子商务插件的账单地址表单中的一组必填字段。

为此,我创建了自定义插件(使用scaffold命令(,并试图覆盖WebsiteSale类的方法_get_mandatory_billing_fields。

这是我对myaddon/controllers/controllers.py的唯一更改,其余插件内容是我使用脚手架获得的内容

from addons.website_sale.controllers.main import WebsiteSale
class WebsiteSaleInherit(WebsiteSale):
    def _get_mandatory_billing_fields(self):
        return ["name","email"]

看起来很有逻辑,但当我试图安装这个模块时,我在网站销售类代码中出错

Traceback (most recent call last):
  File "C:developmentodooodooserviceserver.py", line 1198, in preload_registries
    registry = Registry.new(dbname, update_module=update_module)
  File "C:developmentodooodoomodulesregistry.py", line 89, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "C:developmentodooodoomodulesloading.py", line 449, in load_modules
    processed_modules += load_marked_modules(cr, graph,
  File "C:developmentodooodoomodulesloading.py", line 346, in load_marked_modules
    loaded, processed = load_module_graph(
  File "C:developmentodooodoomodulesloading.py", line 178, in load_module_graph
    load_openerp_module(package.name)
  File "C:developmentodooodoomodulesmodule.py", line 358, in load_openerp_module
    __import__('odoo.addons.' + module_name)
  File "c:developmentodooaddons1test-addon__init__.py", line 3, in <module>
    from . import controllers
  File "c:developmentodooaddons1test-addoncontrollers__init__.py", line 3, in <module>
    from . import controllers
  File "c:developmentodooaddons1test-addoncontrollerscontrollers.py", line 3, in <module>
    from addons.website_sale.controllers.main import WebsiteSale
  File "C:developmentodooaddonswebsite_sale__init__.py", line 5, in <module>
    from . import models
  File "C:developmentodooaddonswebsite_salemodels__init__.py", line 4, in <module>
    from . import account_move
  File "C:developmentodooaddonswebsite_salemodelsaccount_move.py", line 7, in <module>
    class AccountMove(models.Model):
  File "C:developmentodooodoomodels.py", line 167, in __init__
    assert self.__module__.startswith('odoo.addons.'), 
AssertionError: Invalid import of addons.website_sale.models.account_move.AccountMove, it should start with 'odoo.addons'.

看起来我在继承过程中犯了一些错误。如果有任何线索可以在哪里挖掘来解决这个问题,我们将不胜感激!

我会自己回答

那只是导入时的一个愚蠢错误

WRONG
from addons.website_sale.controllers.main import WebsiteSale
RIGHT
from odoo.addons.website_sale.controllers.main import WebsiteSale

最新更新