Python Odoo控制器继承

Python Odoo控制器继承,python,odoo,Python,Odoo,我正在努力解决简单的第一眼问题。我试图覆盖电子商务插件的账单地址表单中的一组必填字段 为此,我创建了自定义插件(使用scaffold命令),并尝试覆盖WebsiteSale类的方法_get_mandatory_billing_字段 这是我对myaddon/controllers/controllers.py的唯一更改,其余的插件内容就是我用scaffolding得到的 from addons.website_sale.controllers.main import WebsiteSale cl

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

为此,我创建了自定义插件(使用scaffold命令),并尝试覆盖WebsiteSale类的方法_get_mandatory_billing_字段

这是我对myaddon/controllers/controllers.py的唯一更改,其余的插件内容就是我用scaffolding得到的

from addons.website_sale.controllers.main import WebsiteSale

class WebsiteSaleInherit(WebsiteSale):
    def _get_mandatory_billing_fields(self):
        return ["name","email"]
看起来很符合逻辑,但是当我试图安装这个模块时,我在WebsiteSale类代码中遇到了错误

Traceback (most recent call last):
  File "C:\development\odoo\odoo\service\server.py", line 1198, in preload_registries
    registry = Registry.new(dbname, update_module=update_module)
  File "C:\development\odoo\odoo\modules\registry.py", line 89, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "C:\development\odoo\odoo\modules\loading.py", line 449, in load_modules
    processed_modules += load_marked_modules(cr, graph,
  File "C:\development\odoo\odoo\modules\loading.py", line 346, in load_marked_modules
    loaded, processed = load_module_graph(
  File "C:\development\odoo\odoo\modules\loading.py", line 178, in load_module_graph
    load_openerp_module(package.name)
  File "C:\development\odoo\odoo\modules\module.py", line 358, in load_openerp_module
    __import__('odoo.addons.' + module_name)
  File "c:\development\odoo\addons\1test-addon\__init__.py", line 3, in <module>
    from . import controllers
  File "c:\development\odoo\addons\1test-addon\controllers\__init__.py", line 3, in <module>
    from . import controllers
  File "c:\development\odoo\addons\1test-addon\controllers\controllers.py", line 3, in <module>
    from addons.website_sale.controllers.main import WebsiteSale
  File "C:\development\odoo\addons\website_sale\__init__.py", line 5, in <module>
    from . import models
  File "C:\development\odoo\addons\website_sale\models\__init__.py", line 4, in <module>
    from . import account_move
  File "C:\development\odoo\addons\website_sale\models\account_move.py", line 7, in <module>
    class AccountMove(models.Model):
  File "C:\development\odoo\odoo\models.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'.
回溯(最近一次呼叫最后一次):
文件“C:\development\odoo\odoo\service\server.py”,第1198行,在预加载注册表中
registry=registry.new(dbname,update\u module=update\u module)
文件“C:\development\odoo\odoo\modules\registry.py”,第89行,新格式
加载模块(注册表、数据库、强制演示、状态、更新模块)
文件“C:\development\odoo\odoo\modules\loading.py”,第449行,在load\u模块中
处理的模块+=加载标记的模块(cr、图形、,
文件“C:\development\odoo\odoo\modules\loading.py”,第346行,在load\U标记的\U模块中
已加载,已处理=加载模块图(
文件“C:\development\odoo\odoo\modules\loading.py”,第178行,在加载模块图中
加载\u openerp\u模块(package.name)
文件“C:\development\odoo\odoo\modules\module.py”,第358行,在load\u openerp\u模块中
导入(odoo.addons.+模块名称)
文件“c:\development\odoo\addons\1test addon\\uuuu init\uuuu.py”,第3行,在
从。导入控制器
文件“c:\development\odoo\addons\1test addon\controllers\\uuuu init\uuuu.py”,第3行,在
从。导入控制器
文件“c:\development\odoo\addons\1test addon\controllers\controllers.py”,第3行,在
来自addons.website\u sale.controllers.main导入网站sale
文件“C:\development\odoo\addons\website\u sale\ \uuuu init\uuuu.py”,第5行,在
从。导入模型
文件“C:\development\odoo\addons\website\u sale\models\\uuuu init\uuuu.py”,第4行,在
从。导入帐户\u移动
文件“C:\development\odoo\addons\website\u sale\models\account\u move.py”,第7行,在
类AccountMove(models.Model):
文件“C:\development\odoo\odoo\models.py”,第167行,在\uuu init中__
断言self.\u模块\u.startswith('odoo.addons')\
AssertionError:导入addons.website\u sale.models.account\u move.AccountMove无效,应以“odoo.addons”开头。
看起来我在继承过程中犯了一些错误。如果有任何提示可以在何处找到解决方法,我将不胜感激!

我将自己回答

那只是一个愚蠢的错误

WRONG
from addons.website_sale.controllers.main import WebsiteSale

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