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(增删查改)的主要内容,如果未能解决你的问题,请参考以下文章

Python 操作Redis

python爬虫入门----- 阿里巴巴供应商爬虫

Python词典设置默认值小技巧

《python学习手册(第4版)》pdf

Django settings.py 的media路径设置

Python中的赋值,浅拷贝和深拷贝的区别