Odoo入门-对象属性、参数

来源:互联网 发布:百度nba球员数据 编辑:程序博客网 时间:2024/04/30 09:27
新建openerp模块四个重要部分:
__init__.py
__openerp__.py
views
Python文件.py




 __init__.py:它用 import 引入这个模块的各种 python 文件。


openerp.py是OpenERP的一个模块声明。模块中定义了几个重要的信息。如下:
{
    'name' : 模块名称,
   ‘summary’:
    'version' : 版本,
    'depends' : ['base'],依赖模块,即安装本模块时将检查此处定义的模块      ,如果没安装将自动一起安装。通常所有模块都要依赖base模块。
    'author' : 作者名,
    'category':分类
   ‘website’:网址
    'description' : """
   ‘data’:模块安装和升级时需要重新加载的XML文件,基础数据。权限。工             作流、视图、报表等的定义文件通常放在此处。通常权限定义文               件放在前面,因为其他文件常引用权限定义数据。
   ‘demo’:示例数据
Accounting and Financial Management.
}


预定义的osv.Model对象属性
_name:对象的唯一标识符,必须是全局唯一。此标志符用于存取对象,格式通常是“ModelName.ClassName”对应,系统会创建数据库表“ModelName.ClassName”
_columns:字典
_defaults:提供字段的默认值与可使用函数
_auto:是否自动创建对象对应的Table,缺省值为True,OpenERP会自动在数据库中微模块中定义的每个对象创建相应table,这个属性为False时,不会自动创建Table。
_inherit:继承产品对象,给产品对象添加字段或方法,不需设置_name,_table等属性(可以与被继承的类的_name一致,表示不创建新的数据库表,直接在原表上修改)
_inherits:继承产品模板对象,创建新的产品对象,产品对象之间建立多对一关联关系。相当于多重继承。(可理解为实例继承,鑫集成的数据对象不单继承被继承对象的属性和方法,同时也集成了数据实例,即表中的记录)
_constraints:对象约束
_sql_contraints:数据库约束,模块安装后对象将在对应数据库表中创建约束
_log_access:是否自动在对应数据表中增加create_uid,create_date,write_uid,write_date四个字段,缺省值为True,即字段增加。四个字段记录record的创建人,创建日期,修改人,修改日期,这四个字段值可以用对象的方法获取。
_order:定义search()和read()方法的结果记录的排序规则,缺省值是id,即按id升序排序。
_rec_name:标识record name字段。缺省(name_get没被重载)方法name_get()返回本字段值。常用于记录的显示。
_sql:SQL代码来创建此对象的表/视图
_table:取代SQL表名
init:对象初始化数据def init(self,cr)
_sequence:数据库表的id字段的序列采集器,缺省值为None。





ORM 
   对象关系映射(Object Relational Mapping)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。


ORM属性(续)
ralated
:关联字段,表示本字段引用关联表中的某字段。格式为:fields.related(关系字段,引用字段,type,relation,string...)。关系字段是本对象的某字段,引用字段是通过关系字段关联的数据表的字段,type是引用字段类型。


例:
'address':fields.one2many('res.partner.address','partner_id','Contacts'),'city':fields.related('address','city',type='char',string='City'),'country':fields.related('address','country_id',type='many2one',relation='res.country',string='Country')
city引用address的city字段,country引用address的country对象。在address的关联对象res.partner.address中,country_id是many2one类型的字段。
property:属性字段。


字段定义的参数
password = “True”,密码星号显示
nolable=‘1’,隐藏标签
attrs属性,定义多条件字段只读,是否显示
digits,直接格式化浮点字段
default_focus:新打开窗口光标位置
Widget:有多种部件显示格式
select=‘1’,默认搜索(定义的name),select=‘2’高级搜索
change_default:别的字段的缺省值是否可依赖于本字段,缺省值为False。
readonly:本字段是否只读,缺省值为False
required:本字段是否必须,缺省值False
states:定义特定state才生效的属性
string:字段显示名,任意字符串
translate:本字段值是否可翻译,缺省值False
domain:域条件,缺省值:[].
invisible:本字段是否可见,即是否在界面上显示本字段,缺省值为True



缺省值存取方法
def default_get(self,cr,uid,fields,form=None,reference=None)
def default_set(self,cr,uid,field,value,for_user=False)



特殊字段操作方法
def perm_read(self,cr,uid,ids)
0 0
原创粉丝点击