启用黑暗模式!
odoo-technical-diffrences.png
由: Avinash

从Odoo v7到ooo1o的技术过渡

技术

本博客由Odoo开发人员专门组成,他们深入了解了从Odoo 7到Odoo 10之间发生的技术转变。大家都知道,最初的版本是Open ERP,最终命名为Odoo。两者之间有很多技术上的区别Odoo版本7和Odoo版本10如果我们看看。作为一名开发人员,我在开始工作时遇到了许多障碍和挑战,因为当时没有详细描述版本更改的文档,特别是技术差异。


在讨论软件的技术细节之前,让我先简要介绍一下Odoo。2005年2月,Odoo以Tiny ERP的名字进入了它的革命性领域。在初始阶段,Tiny ERP有4个版本-版本1、2、3和4。2009年4月晚些时候,Odoo发布了它的第5个版本,并从Tiny ERP获得了Open ERP的名称更改。Open ERP进一步推出了4个不同的版本——V5、V6、V6.1和V7。最后,在版本7发布后不久,Open ERP最终被命名为Odoo,拥有全新的品牌主题和logo。Odoo V8于2014年9月18日发布。最新的Odoo系列嵌入了4个版本——V8、V9、V10和V11。版本11很快就会有更多的功能和同步的技术。


在这篇博客中,我将详细介绍Odoo 7和Odoo 10版本的技术转变


主要差异:


应用程序接口


在版本7中,我们使用了与版本8,9,10中不同的api。

新api的装饰器示例:
@api。回报,@api。多,@api。1、@api。模型,@api。约束,@api.depends, @api。onchange, @api.noguess。


在v8、v9和v10中使用了新的api。V7不使用新的api。


在v7(旧Api)中,我们必须通过函数传递参数,如数据库游标(cr)、用户id(uid)、上下文字典(context)和记录id(ids)。


V8和v9同时使用旧API和新API。


在v8, v9和v10(新的api)中,Odoo引入了更多面向对象的功能。我们不需要将参数与函数放在一起。这些参数隐藏在模型中。


V10只使用新的api。

2)池

池是存储OpenERP模型实例的字典对象。OpenERP可以管理多个数据库。每个数据库都有一个不同的池。自我。池正在引用当前的数据库实例。在Odoo的最新版本中删除了pool.get()方法。版本7、8和9部分包含池对象。Odoo 10完全删除了池对象。


3) manifest文件名



v7 __openerep__.py
v8 __openerep__.py
v9 __openerep__.py
v10 __manifest__.py
4) xml标记



v7 < openerp >
v8 < openerp >
v9 < openerp >
v10 < odoo >

5)xpath


V7
V8
v9 < xpath expr = " / / [@ name = '多']”
v10 < xpath expr = " / / [@ name = '多']”

引用xpath从v9中删除带有字符串的表达式。


6) env


V7没有使用env概念。这是新api的概念。


在new api中使用Self.env ['model.name']而不是self.pool.get('model.name')。


7)字段声明

v7

_columns =

“product_id”:fields.many2one(“产品。产品”、“产品”),

V7只使用旧API



v8

_columns = {

“product_id”:fields.many2one(“产品。产品”、“产品”),

product_id字段。any2one(“产品。产品”、“产品”)

V8同时使用旧API和新API。这就是它可以使用两个字段声明方法的原因。


v9

_columns = {

“product_id”:fields.many2one(“产品。产品”、“产品”),

product_id字段。any2one(“产品。产品”、“产品”)

V9也使用旧API和新API。所以它也使用两个字段声明方法。


v10 product_id字段。any2one(“产品。产品”、“产品”)

V10只使用新的api。


设置字段的默认值。


v7

_defaults = {


'date': lambda * a: datetime.datetime.now()

v8

_defaults = {


'date': lambda * a: datetime.datetime.now()


=日期字段。日期(字符串=“日期”默认= datetime.now ())

v9

_defaults = {


'date': lambda * a: datetime.datetime.now()


=日期字段。日期(字符串=“日期”默认= datetime.now ())


v10

=日期字段。日期(字符串=“日期”默认= datetime.now ())

9) Java脚本更改。


v7

函数openerp_pos_models(实例、模块)

Var _t = instance.web._t;



v8

函数openerp_pos_models(实例、模块)

Var _t = instance.web._t;


v9

odoo.define (barcode_integration.interface,函数(要求)

使用严格的;

Var core = require(' web.core ');

Var _t = core._t;


});

v10

odoo.define (barcode_integration.interface,函数(要求)

使用严格的;

Var core = require(' web.core ');

Var _t = core._t;


});

在v7和v8中,我们使用原始js/ jquery。但在v9和v10中,我们使用骨干js。


这些是在7和10之间的版本中所做的一些基本更改。版本7和版本10之间发生了很多变化。如果你对这个博客感兴趣,请在收件箱中收到你宝贵的反馈,这将激励我在这个话题上写得更深入。



如果你在odoo需要任何帮助,我们是在线的,请与我们聊天。



6
评论

Aysha Siddika

非常感谢。这个帖子很有帮助。我曾经制作过8个版本,现在是10个,但9个版本就不行了。这就是为什么从8号到10号很难迁移的原因。请提供更多。

30/11/2017

-

12:33AM

一生

不错的职位。请提供更多的信息。Java脚本修改。

15/08/2017

-

2:07AM

军刀

我是débutant在odoo,我要迁移模块在版本7 à版本9 odoo。你在idées吗?

12/03/2018

-

1:57AM

托尼

好文章,谢谢!我也对js的变化感兴趣

06/10/2017

-

十时整

Shahid阿里

有价值的

06/09/2017

-

6:53AM

Jovani莫拉

好解释!对我有很大帮助。

04/08/2017

-

9:14AM



留下你的评论

whatsapp
位置

卡利卡特

欧宝娱乐平台网站Cybrosys技术有限公司
Kinfra科技公园的Neospace
Kakkancherry,卡利卡特
印度喀拉拉邦- 673635

位置

伦敦

Cybrosys有限
α的房子,
伦敦伯勒高街100号
SE1 1LB,英国

位置

科钦

欧宝娱乐平台网站Cybrosys技术有限公司
香港湾仔区Thapasya大厦1楼
Infopark Kakkanad,
印度科钦- 682030。

位置

班加罗尔

Cybrosys技术解决方案
庄园,8楼,
迪金森的道路,
印度班加罗尔- 560042

给我们发信息