Ooo模块开发全流程

上传人:桔**** 文档编号:563891188 上传时间:2024-02-10 格式:DOC 页数:63 大小:1.44MB
返回 下载 相关 举报
Ooo模块开发全流程_第1页
第1页 / 共63页
Ooo模块开发全流程_第2页
第2页 / 共63页
Ooo模块开发全流程_第3页
第3页 / 共63页
Ooo模块开发全流程_第4页
第4页 / 共63页
Ooo模块开发全流程_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《Ooo模块开发全流程》由会员分享,可在线阅读,更多相关《Ooo模块开发全流程(63页珍藏版)》请在金锄头文库上搜索。

1、构建Odoo模块模块组成o 业务对象业务对象声明为Python类,由Odoo自动载入.o数据文件XML或CSV文件格式,在其中声明了元数据(视图或工作流)、配置数据(模块参数)、 演示数据等o Web控制器处理Web浏览器发来的requests.o静态web数据Web用到的图像,CSS或JavaScript文件.模块结构一个Odoo模块也是一个 Python模块,存放在一个目录中,包含一个_init_.py文件,用于导入其他Python模块.from . import mymoduleodoo.py提供了一个子命令scaffold可以方便地创建一个空的模块.$ odoo.py scaffold

2、 vmodule name 命令执行后,将会创建一个子目录并且其中包括了Odoo模块所需的一些基本文件.练习#1执行 ./odoo.py scaffold ope nacademyadd ons, 在 addo ns 目录下 创建一个名为openacademy 的模块,生成的目录文件结构如下openacademyI_ini t_.pyI_openerp_.pyIcon trollers.pyIdemo.xmlImodels.pyIsecurity1templates.xml各文件内容请查看文件或查看 原文,然后对_openerp_.py中的几种标识文本进行修改, 至少需要添加installab

3、le:True, application:True。对象关系映射ORM层是Odoo的一个关键组件,它可以避免大部分的SQL语句编写从而提高扩展性和 安全性业务对象用派生自Model的Python类(模型)来编写,该类的_name属性定义了模型在Odoo系统中的名称.from openerp import modelsclass Mini malModel (models.Model) :_n ame =test.mode l字段字段定义模型能够存储什么以及在哪里存储,字段在模型类中用属性来定义from ope nerp import models, fieldsclass LessMi ni

4、malModel(models.Model)_n ame = test.model2name = fields.Char ()通用属性与模型类似,字段也可以通过参数传递对其进行设定:name = field.Char (required=True)字段的常用属性有:o string (unicode, default: field s name)字段标签名称,会显示在界面上(对用户可见)。o required (bool, default: False)如果值为True,此字段值不能为空,设置默认值或者在创建记录时提供。o help (unicode, default:)界面上显示提示语。o

5、in dex (bool, default: False)如果值为True,创建表时将为此列添加索引。简单字段字段可以分为两类:简单字段和关系字段前者为原子值,直接保存在模型对应的数据库表中;后者连接到其他的记录上(可以是相同的模型也可以是不同的模型).Boolean, Date, Char 这些都是简单字段.保留字段Odoo在模型中自动创建并维护一些字段,这些字段就是保留字段,这些字段数据不需要也不应该手动去修改o id (Id)一条记录的唯一 id。o create_date (Datetime)记录创建时间。o create_uid (Ma ny2one)谁创建的记录。o write_d

6、ate (Datetime)最后修改时间。o write_uid (Ma ny2one)谁最后修改的记录。特殊字段rec_n ame内容如下:默认情况下,Odoo要求模型中有一个name字段,用于显示和搜索,通过设置 也可以达到这样的目的练习#2在 openacademy 模块中定义一个新的模型 Course , openacademy/models.py# -*- coding: utf-8 -*-from openerpimport models, fields, apiclass Course (models.Model) :n ame =ope nacademy.coursedescr

7、ipti on = fields.Text()数据文件Odoo是一个高度数据驱动的系统,虽然使用Python代码来定制模块行为,但很多模块数据是在其载入时setup的,并且有些模块仅仅为Odoo添加数据.通过数据文件来定义模块数据,例如可以使用XML文件中的元素定义数据,每一个元素创建或者更新数据库中的一条记录,形式如下:a value o modelOdoo模型名.o id外部ID(External Identifier),通过它可以引用到记录(并且不需要知道记录所在的数据库ID).兀素name属性用于确定字段名称(例如description),该元素的body给出字段的值.数据文件必须在模

8、块载入清单文件列表中,也就是_openerp_.py的data 列表(全部载 入)或demo 列表(只有设定为载入演示数据才会载入)中.练习#3创建一个数据文件来向Course 中添加数据,编辑 openacademy/demo.xml.并确认Course 0s descripti on_openerp_.py 的demo 列表中有该文件.vdata record model= ope nacademy.course id= course0Course 0 Can have multiple lines/ fieldrecord model= ope nacademy.courseid=cou

9、rse1Course 1 /fieldrecord model= ope nacademy.courseid=course2Course 2 /fieldCourse 2s descripti on动作和菜单般通过数据文件来定义在Odoo中,动作和菜单都是定义在数据库中的数据记录 动作可以由三种方式触发:o点击菜单项(菜单项链接到特定动作)o点击视图上的按钮(如果按钮连接到动作)o作为对象的上下文动作vrecord model= id= actio nist_ideasvfieldname= name ldeasvfieldn ame=res_model idea.ideatree,form注意:action必须先于menu的连接使用定义,数据文件在载入时顺序地执行,所以动作的ID必须首先存在于数据库中才能使用.练习#4定义一个新的菜单项访问OpenAcademy 课程.仓U建openacademy/views/openacademy.xml文件,并在其中添加动作和菜单.vfield name= name Courses openacademy.courseform tree,form Create the first course!- Full id locati on:acti

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号