Odoo 版本12和更低版本之间的差异_uinit___u;.py功能

Odoo 版本12和更低版本之间的差异_uinit___u;.py功能,odoo,odoo-12,Odoo,Odoo 12,从v10开始,我就一直在使用Odoo,在每个自定义模块上,我使用init.py导入模型和控制器文件夹,正如python手册所说的那样 from . import models from . import controllers 在v12中,不是从文件夹中读取说找不到模型,而是如果我将文件移动到根模块文件夹中并导入文件,它就会工作 init.py 根模块文件夹 from . import models from . import controllers init.py模型文件夹 from .

从v10开始,我就一直在使用Odoo,在每个自定义模块上,我使用init.py导入模型和控制器文件夹,正如python手册所说的那样

from . import models
from . import controllers
在v12中,不是从文件夹中读取说找不到模型,而是如果我将文件移动到根模块文件夹中并导入文件,它就会工作

init.py 根模块文件夹

from . import models
from . import controllers
init.py模型文件夹

from . import mymodel

有什么想法吗?

这与python版本有关。由于Odoo 10用户使用python 2,从Odoo版本11开始使用python 3

在Python 3中,包中的隐式相对导入不再可用-只支持绝对导入和显式相对导入。此外,星型导入(例如从x导入*)仅允许在模块级代码中使用。所以在Odoo中,必须像这样导入模型


来自odoo导入api、字段、模型,
这与python版本相关。由于Odoo 10用户使用python 2,从Odoo版本11开始使用python 3

在Python 3中,包中的隐式相对导入不再可用-只支持绝对导入和显式相对导入。此外,星型导入(例如从x导入*)仅允许在模块级代码中使用。所以在Odoo中,必须像这样导入模型


来自odoo导入api、字段、模型,
odoo版本12:示例插件文件夹称为addon1。此加载项1通常位于加载项文件夹中

在addon1文件夹内: 必须将init文件重命名为双下划线 乙二醇

正如您所提到的,这是您导入的(注意编码:第一行中的utf-8行)

在addon1文件夹中,有一个名为models的文件夹(如您所述)。 在models文件夹中,有init文件,必须重命名为双下划线 乙二醇

在该文件中,导入模型文件夹中的python文件(第一行有编码行)

[因此您的mymodel.py文件位于您创建的models文件夹中]

在models文件夹中,您需要像这样导入python文件models.py(例如mymodel.py)

# -*- coding: utf-8 -*-

from odoo import models, fields, api
以下有关odoo 12安全功能的额外信息:
odoo 12有一个新的安全文件夹,名为文件夹安全,其中的文件是 ir.model.acces.csv-如果您想查看新菜单,则需要将您的模型添加到安全性中 乙二醇

model\u classname:如果您的类名为_name=“mymodel.category”(替换为u),则将成为model\u mymodel.category 乙二醇


Odoo版本12:示例加载项文件夹称为加载项1。此加载项1通常位于加载项文件夹中

在addon1文件夹内: 必须将init文件重命名为双下划线 乙二醇

正如您所提到的,这是您导入的(注意编码:第一行中的utf-8行)

在addon1文件夹中,有一个名为models的文件夹(如您所述)。 在models文件夹中,有init文件,必须重命名为双下划线 乙二醇

在该文件中,导入模型文件夹中的python文件(第一行有编码行)

[因此您的mymodel.py文件位于您创建的models文件夹中]

在models文件夹中,您需要像这样导入python文件models.py(例如mymodel.py)

# -*- coding: utf-8 -*-

from odoo import models, fields, api
以下有关odoo 12安全功能的额外信息:
odoo 12有一个新的安全文件夹,名为文件夹安全,其中的文件是 ir.model.acces.csv-如果您想查看新菜单,则需要将您的模型添加到安全性中 乙二醇

model\u classname:如果您的类名为_name=“mymodel.category”(替换为u),则将成为model\u mymodel.category 乙二醇


Odoo不能加载模块吗?或者您的IDE是否告诉您有问题?Odoo不能加载模块吗?或者您的IDE是否告诉您有问题?
__init__.py 
# -*- coding: utf-8 -*-

from . import models
from . import mymodel
# -*- coding: utf-8 -*-

from odoo import models, fields, api
access_classname_unique,addon1.addon1,model_classname,,1,1,1,1
access_mymodel_category,addon1.addon1,model_classname,,1,1,1,1