one装饰器的作用是对每一条记录都执行对应的方法,无返回值。
model装饰器的作用是返回一个集合列表,一般用来定义自动化动作里面,该方法无ids传入。
constrains装饰用于对字段进行限制
@api.constrains('age')
def _check_age(self):
if self.age<16:
raise ValueError(_('Age must be older than 16'))
multi装饰器的作用是对每一条记录都执行对应的方法,与one装饰类不同的是有返回值。
environment装饰
environment类提供了对ORM对象的封装,同时提供了对注册类的访问,记录集的缓存,以及管理重计算的数据结构。对于继承Model类来说可以直接通过self.env对environment进行操作。
属性列表:
1.user:返回当前用户
self.env.user
2.lang:返回当前语言代码
self.env.lang
3.in_draft:返回是否处于草稿状态
self.env.in_draft
4.in_onchange:返回是否处于on_change草稿模式
self.env.in_onchange
另外还有cr,registery,cache,prefetch,computed,dirty,todo,mode,all
应用说明:
1.利用env[model]获取类对象
self.env['ir.model'].search([('state','!=','manual')])
2.利用cr执行sql语句
self.env.cr.execute(query,(value,))
3。Model装饰
Model装饰起的作用是返回一个集合列表
depends装饰
1.在计算字段值(而不是直接从数据库中读取)时使用的计算参数。它必须将计算值分配给该字段。如果使用其他字段的值,应该使用depends()指定这些字段
实例:
total=fields.Float(compute=“compute_total”)
@api.depends('value','tax)
def compute_total(self):
for record in self:
record.total=record.value+record.value*record.tax
2. 当使用关联字段是可以指名路径:
实例:
@api.depends('line_ids.values')
def compute_total(self):
for record in self:
record.total=sum([line.value for line in record.line_ids])
onchange装饰
当用户更改某个字段的值时(但尚未保存该表单),他可以自动更改基于该字段的字段值,如更改或添加一个新的发票行时,该值自动更新
returns()装饰
model装饰器的作用是返回一个集合列表,一般用来定义自动化动作里面,该方法无ids传入。
constrains装饰用于对字段进行限制
@api.constrains('age')
def _check_age(self):
if self.age<16:
raise ValueError(_('Age must be older than 16'))
multi装饰器的作用是对每一条记录都执行对应的方法,与one装饰类不同的是有返回值。
environment装饰
environment类提供了对ORM对象的封装,同时提供了对注册类的访问,记录集的缓存,以及管理重计算的数据结构。对于继承Model类来说可以直接通过self.env对environment进行操作。
属性列表:
1.user:返回当前用户
self.env.user
2.lang:返回当前语言代码
self.env.lang
3.in_draft:返回是否处于草稿状态
self.env.in_draft
4.in_onchange:返回是否处于on_change草稿模式
self.env.in_onchange
另外还有cr,registery,cache,prefetch,computed,dirty,todo,mode,all
应用说明:
1.利用env[model]获取类对象
self.env['ir.model'].search([('state','!=','manual')])
2.利用cr执行sql语句
self.env.cr.execute(query,(value,))
3。Model装饰
Model装饰起的作用是返回一个集合列表
depends装饰
1.在计算字段值(而不是直接从数据库中读取)时使用的计算参数。它必须将计算值分配给该字段。如果使用其他字段的值,应该使用depends()指定这些字段
实例:
total=fields.Float(compute=“compute_total”)
@api.depends('value','tax)
def compute_total(self):
for record in self:
record.total=record.value+record.value*record.tax
2. 当使用关联字段是可以指名路径:
实例:
@api.depends('line_ids.values')
def compute_total(self):
for record in self:
record.total=sum([line.value for line in record.line_ids])
onchange装饰
当用户更改某个字段的值时(但尚未保存该表单),他可以自动更改基于该字段的字段值,如更改或添加一个新的发票行时,该值自动更新
returns()装饰
返回一个对象的集合
cr:装饰traditional-style方法,标识将cr作为一个参数
cr_context:装饰traditional-style方法,标识将cr,context作为参数
cr_uid:装饰traditional-style方法,标识将cr,uid作为参数
cr_uid_context:装饰traditional-style方法,标识将cr,uid,context作为参数
cr_uid_id:装饰traditional-style方法,标识将cr,uid,id作为参数
cr_uid_id_context:装饰traditional-style方法,标识将cr,uid,id,context作为参数
cr_uid_ids:装饰traditional-style方法,标识将cr,uid,ids作为参数
cr_uid_ids_context:装饰traditional-style方法,标识将cr,uid,ids,context作为参数