Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 6307|回复: 0
打印 上一主题 下一主题

odoo初接触

[复制链接]

119

主题

119

帖子

566

积分

高级会员

Rank: 4

积分
566
跳转到指定楼层
楼主
发表于 2016-11-7 22:33:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个标准模块包括以下几个元素:
Business object(业务对象):继承Python类的osv.Model,由OpenObject进行管理。
Data files(数据文件):XML/CSV文件的源数据(视图和工作流),默认配置数据(模块参数)和演示数据等。
Web controllers(Web控制器):处理浏览器请求
Static web data(静态web数据):web所用的图像、CSS或js文件


模块结构
   一个 Odoo 模块是由它的 Manifest 文件声明。这是强制性的,它包含了一个 Python 字典,声明模块的各种元数据:该模块的名称和说明,他正常工作所依赖的 Odoo 模块列表,引用的数据文件,...


Manifest 文件的一般结构为:
{
    'name': "MyModule",
    'version': '1.0',
    'depends': ['base'],
    'author': "Author Name",
    'category': 'Category',
    'description': """
    Description text
    """,
    # data files always loaded at installation
    'data': [
        'mymodule_view.xml',
    ],
    # data files containing optionally loaded demonstration data
'demo': [
        'demo_data.xml',
    ],
}


模块也是一个名为 __init__.py 的 python package, 它用 import 引入这个模块的各种 python 文件。
举个例子,如果这个模块只有一个文件 mymodule.py, __init_.py 文件内容可能只有这一句:
import mymodule




常见属性
象模块一样,字段 fields 也是可以通过把配置属性作为参数进行配置:
name = field.Char(required=True)
一些属性可以被所有字段使用,下面是最常见的几个:
string (unicode, default: field’s name)
字段在UI上的标签 (用户可见).
required (bool, default: False)
如果为True, 字段不能为空,当创建一个记录时它必须有一个值或者有默认值。
help (unicode, default: '')
长的形式,在用户界面上提供帮助提示
index (bool, default: False)
请求 Odoo 在数据库上对那个列创建用户索引。
Requests that Odoo create a database index on the column




ORM(关系映射)字段类型


模型可以通过在其定义中进行配置设置多个属性。最重要的属性是_name是必需的,它定义了模块在Odoo系统中的名称。
这里是一个模块的最小完整定义:
from openerp import models
class MinimalModel(models.Model):
    _name = 'test.model'


字段类型
基础类型:char,text,boolean,interger,float,date,time,datetime,binary
复杂类型:selection,function,related
关系类型:one2one,one2many,many2one,many2many



method:为True表示本字段函数是对象的一个方法,为False表示是全局函数,不是对象的方法。如果method=True,obj指定method的对象。
fcnt:是函数或方法,用于计算字段值。如果method=true,表示fcnt是对象的方法,其格式如下:def fnct(self,cr,uid,ids,field_name,args,context),否则,其格式如下:def fnct(cr,table,ids,field_name,args,contexr)。ids是系统传进来的当前存取的record id。field_name是本字段名,当一个函数用于多个函数字段类型时,本参数可区分字段。args是‘arg=None’传进来的参数。
fcnt_inv:用于写本字段的函数或方法,如果method = true,其格式是:deffcnt_inv(self,cr,uid,ids,field_name,field_value,args,context),否则格式为:deffcnt_inv(cr,table,ids,field_name,field_value,args,context).
fcnt_search:定义该字段的搜索行为。如果method = true,其格式是:deffcnt_search(self,cr,uid,obj,field_name,args),否则格式为:deffcnt_search(cr,table,ids,field_name,field_value,args,context).
store:表示是否希望在数据库中存储本字段值,缺省值为False


reference:引用型,格式为:fields。reference(字段名,selection,size,...)。其中selection是:1)返回tuple列表的函数,2)表征该字段引用哪个对象(or model)的tuple列表。reference字段在数据库表中的存储形式是(对象名,ID),如(product.product,1)表示引用对象product.product中id=3的数据。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-4-20 07:07 , Processed in 0.012435 second(s), 10 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表