odoo的API:
Odoo新API的介绍与应用:
odoo新api的实现是借助于python装饰器。新API的装饰器主要有以下几种:
model,multi,one,constrains,depends,onchange,returns
约束字段的值,或者字段值不能重复。
例子1:
@api.constrains('age')
def _check_age(self):
if self.age<18:
raise ValueError(_('Age must be older than 18'))
例子2:
@api.constrains('name')
def _check_name(self):
count=self.search_count([('name','=',self.name)])
if count>1:
raise ValidationError(u'名字%S已经存在!'%self.name)
raise ValueError(_('Age must be older than 18'))
二、@api.depends()
depends 主要用于compute方法,v8当中已经取消了function字段,
对于任何fields都可以通过添加compute属性动态赋值。depends就是用来标该方法依赖于哪些字段的装饰。
依赖的任一字段变化时(ORM or Form),触发该函数执行
@api.depends('name', 'an_other_field')
def afun(self):
pass 三、@api.onchange()
onchange的使用方法非常简单,就是当字段发生改变时,触发绑定的函数。 @api.onchange('fieldx')
def do_stuff(self):
if self.fieldx == x:
self.fieldy = 'toto' 未完待续。。。。。。。。。。。。