OpenERP Object Attributes
Objects Introduction
To define a new object, you have to define a new Python class then instantiate it. This class must inherit from the osv class in the osv module.
Object definition
对象定义的前几行如下::
class name_of_the_object(osv.osv):
_name = 'name.of.the.object'
_columns = { ... }
...
name_of_the_object()
一个对象可以通过一些字段来定义,而这些字段在类中已经预定义了名称。其中有两个是必须的(_name和_columns),其他都是可选的。预定义的字段是:
Predefined fields
_auto
是否自动创建对象对应的Table,如果OpenERP的对象从PostgreSQL views中产生时,将_auto设为False比较好。想要知道更多的细节可以查看“Reporting From PostgreSQL Views”。
_columns (required)
对象字段,可在field章节了解更多。
_constraints
定义对象上的约束,可在“constraints”章节了解更多。
_sql_constraints
定义对象中SQL约束,可在“SQL constraints”章节了解更多。
_defaults
定义一些字段的缺省值,可在“default value”章节了解更多。
_inherit
当前对象继承自哪里,可在 object inheritance section (first form) 了解更多。
_inherits
当前对象继承的对象列表,这个列表必须是下面的形式:{‘name_of_the_parent_object’: ‘name_of_the_field’, …}。可在“object inheritance section”了解更多。缺省值是:{}
_log_access
定义对资源的写访问是否应写入日志,如果是true,那将自动在对应的数据表中增加create_uid, create_date, write_uid, write_date四个字段,缺省值为True,即字段增加。这四个字段分布记录record的创建人,创建日期,修改人,修改日期。这四个字段值可以用对象的方法(perm_read)读取。
_name (required)
定义对象的名称,缺省值为None。
_order
定义search和read方法的结果记录排序规则。
缺省值:“id”
例如:
_order = "name"
_order = "date_order desc"
_rec_name
标识每个已被存储的资源的名称字段。缺省值是:“name”,缺省情况(name_get没被重载的话)方法name_get()返回本字段值。
_sequence
数据库表的id字段的序列采集器,缺省值为: None。
_sql
SQL代码执行在对象的创建之上,意思就是说在表格创建后代码执行。
_table
数据库表名,缺省值是和_name一样,只是将”.”替换成”_“。