odoo基础开发之CURD(增删查改)
Posted 温柔且上进c
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了odoo基础开发之CURD(增删查改)相关的知识,希望对你有一定的参考价值。
odoo基础开发之增、删、查、改
环境介绍
- odoo版本:odoo 13
- python版本:3.7.3
- odoo环境低于12版本,某些操作方法需要加特定的装饰器(如:@api.multi),高于odoo12版本即可向正常的方法一样定义操作。
操作介绍
增加数据:
- 示例代码:
@api.model
def create(self, vals_list):
res = super(EpidemicRecord, self).create(vals_list)
return res
- 参数解释:
- vals_list:字典类型,添加数据时,数据还未保存到数据库中时,数据保存在此,字典的key为模型字段名,字典的value为模型的字段值。vals_list[‘字段名’]=字段值
- res:成功创建后,即为数据已经保存到数据库中。返回的数据记录集。res.字段名=字段值
- super(模型类名,self)。第一个参数为模型类名,而不是模型名。
- 在点击保存时触发此方法,而不是点击创建时触发此方法。
- 创建不触发:
- 保存时触发:
修改数据:
- 示例代码:
def write(self, vals):
res = super(EpidemicRecord, self).write(vals)
return res
- 参数解释:
- self:为对象,当前正在修改的数据集的元数据,可以为多条数据
- vals:为字典类型,我们所修改字段的数据,key为字段名,value为字段值
- res:返回值为布尔类型,修改成功返回True,修改失败返回False
- 创建记录保存时,只执行create方法,不执行write方法,只要在修改数据后,保存数据才会执行write方法,且create方法只会在创建时执行一次。
删除数据:
- 示例代码:
def unlink(self):
res = super(EpidemicRecord, self).unlink()
return res
- 参数解释:
- self:当前操作的数据集
- 删除当前数据集的所有记录,并返回一个布尔值,true删除成功,false删除失败。
- 可以在重写此方法,来达到假删除的,而不是直接从数据库中删除。
- 批量删除:
- 单个删除:
查找数据:
- self.browse(ids)方法,ids是一个列表
- self.search(domain, order=‘id’, limit=1)方法,domain 是查询条件, limit 取前limit个,order排序方式
以上是关于odoo基础开发之CURD(增删查改)的主要内容,如果未能解决你的问题,请参考以下文章