1、self.search方法的使用,可以在search后跟着一个domain,对想要获取的字段进行筛选,获得筛选后的数据,如:self.search([('is_company', '=', True), ('customer', '=', True)])就是以is_company和customer两个字段的状态为条件进行搜索。也可以添加limit和offset对搜索结果进行限制:
limit用于限制查询结果返回的数量,如limit=1,5表示从第一条开始查询5条数据。
使用offset时limit只有一个参数,默认为从0开始搜索,offset 后面的参数表示跳过几条数据,如limit2 offset3:
所有查询的是跳过3条数据,查询后面的2条记录,也就是第4和第5条。
search(args[, offset=0][, limit=None][, order=None][, count=False])
根据args参数里的domain表达式来搜索所有记录,参数列表:
(1).args domain表达式,为空时返回所有记录
(2).offset (int) 从第几条记录开始取
(3).limit (int) 返回记录行数的最大值
(4).order (str) 排序的字段
(5).count (bool) 当值为True的时候只返回匹配记录的条数
2、继承和类
在py文件中继承其他的模型,如_inherit = 'res.partner',继承res.partner。获取其所拥有的字段,也可以在继承的基础上自己添加新的字段。继承分为同名和非同名,如果没有重新定义_name字段,则默认为同名继承。
对视图的继承,如图需要在ref值写入继承的视图的id,并且以xpath标签在继承的视图中添加新的字段,用expr="//field[@name='website']"来进行插入字段的定位,可以用position="after"对字段插入的位置进行确定,可以有after、before和replace三种定位。
odoo中的类,是以_name的值来确定的,与Class定义的类名无关。如图1、图2,虽然class名不同,但是_name的值是一样的,所以对任一个图中的class进行修改,另一个也会发生改变。