Odoo的增删改查

这篇具有很好参考价值的文章主要介绍了Odoo的增删改查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

odoo内置函数定义

create函数:(增)

    @api.model
    def create(self, vals_list):
        """
        作用:记录创建方法。创建记录的orm函数。页面新建点击保存时触发调用。返回值为创建成功的记录集
        self:模型对象
        vals_list:页面数据列表,即要插入数据库中一条完整的数据列表,
        return: 返回模型对象,此处为ArticleAuthor对象,数据创建完成
        """
        article_author_obj = super(ArticleAuthor, self).create(vals_list)  
        # 调用odoo自定义的create方法创建ArticleAuthor对象
        return article_author_obj

unlink函数:(删)

    def unlink(self):
        """
        作用:删除记录
        return:删除成功则返回True,失败则返回False
        """
        res = super(ArticleAuthor, self).unlink()
        return res

write函数:(改)

    def write(self, values):
        """
        作用:修改记录时使用
        values:修改页面的数据列表
        return:修改成功则返回True,失败则返回False
        """
        res = super(ArticleAuthor, self).write(values)
        return res

read,search,和search_read函数(查)

1)read函数
    def read(self, fields=None, load='_classic_read'):
        """
        作用:读取一条数据
        fileds:读取条件,即读取对应的数据字段
        return: 返回读取的数据列表
        """
        res = super(ArticleAuthor, self).read(['name', 'age'])
        #  读取数据时只获得name和age字段的值
        print(res)
        return res
2)search函数

一般不重写search
第一个列表为domain,limit为输出一条数据

search([
       ('name', '=', attachment_name),
       ('res_model', '=', self.model),
       ('res_id', '=', record.id)
       ], limit=1)
3)search_read函数
search_read(domain,fileds)

odoo内置函数使用

create函数:(增)

  • create(vals_list)
    如:test .create({'name': "New Name"})
    即:在test 对象中,创建一条新纪录

unlink函数:(删)

  • unlink()
    如下:
    test = self.env['res.users']
    test.search([('id', '=', '1')]).unlink()
    
    即:先获取res.users表为对象,再将该表中id为1的记录删除掉

write函数:(改)

  • write(vals_list)
    如下:
    rs = demo.search([('name', '=', client_id)])
    info = {}
    info[‘id’]=1
    rs.write(info)
    
    即:先获取需要修改的表对象,再将该表中的某条记录的数据进行一个更新

read,search,和search_read函数:(查)

1)read函数

用法:read(self,fields)

2)search函数
  • 查询模型内的全部数据
    result= self.env['res.users'].search([])

  • 查询指定条件数据
    result.search([('id', '=', 1), ('status', '=', True)])

  • 查询前2条数据

    result.search([
          ('name', '=', attachment_name),
          ('res_model', '=', self.model),
          ('res_id', '=', record.id)
          ], limit=2)
    
  • 关联查询

    student = self.env['emp.student']
    teacher = self.env['emp.teacher']
    demo = teacher.search([('id', '=', student.search([('id', '=', 1)]).teacher_id.id)])
    print (demo)
    print (demo.name)
    print (demo.sex)#类似于sql中的嵌套查询
    
3)search_read函数

用法:search_read(domain,fileds)

注:如果不需要权限进行增删改查,则直接在模型后面加上sudo()(一般适用于接口)
如:request.env[“academy.teachers”].sudo().search([(“id”, “=”, pk)])文章来源地址https://www.toymoban.com/news/detail-437865.html

到了这里,关于Odoo的增删改查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MyBatis的增删改查

            本章学习MyBatis的基本crud操作。 java程序如下: ①使用map集合传参 ②使用pojo传参 SQL语句如下:  运行结果: ps:如果采用map集合传参,#{} 里写的是map集合的key,如果key不存在不会报错,数据库表中会插入NULL。 ps:如果采用POJO传参,#{} 里写的是POJO类中get方法的方法

    2024年02月08日
    浏览(34)
  • 表的增删改查

    1、创建表 mysql create table employee (     - id int(1) comment \\\'员工编号\\\',     - name varchar(6) comment \\\'员工名字\\\',     - gender varchar(2) comment \\\'员工性别\\\',     - salary int (4) comment \\\'员工薪资\\\'); Query OK, 0 rows affected (0.01 sec) 2、插入数据 insert employee values(1,\\\'张三\\\',\\\'男\\\',2000); insert into employee values

    2024年02月13日
    浏览(44)
  • Mysql的增删改查

      insert into 表名(列名1,列名2,列名3,.....列名n)values(值,值,值,....值) insert into 表名 set 列=值,set 列=值...set 列=值 delete from 表名 delete from 表名 where 列=值 update 表名 set 列=值,列=值,,,列=值 where 列=值 注意: 这里只有一个set,update对应的set只有一个,逗号后边直

    2024年02月15日
    浏览(35)
  • HBase的增删改查

    目录 学习HBase 一、HBase的定义 二、HBase 逻辑结构 三、HBase 物理存储结构 四、 数据模型 五、HBase Shell操作 1.基本操作命令 3.【Table】表的操作命令 4.其他命令 一种分布式、可扩展、支持海量数据存储的Nosql数据库。 1. NameSpace 命名空间,类似于关系型数据库的 DatabBase 概念,每

    2024年01月21日
    浏览(31)
  • 表的增删改查 进阶(二)

    🎥 个人主页:Dikz12 🔥个人专栏:MySql 📕格言:那些在暗处执拗生长的花,终有一日会馥郁传香 欢迎大家👍点赞✍评论⭐收藏 目录 3.新增  4.查询 聚合查询  聚合函数  GROUP BY子句  HAVING  联合查询  内连接(重点) 外连接(重点)  左外连接 右外连接  自连接 子连接  合并

    2024年01月20日
    浏览(46)
  • MySQL中的增删改方法

    目录 1.插入数据/添加数据 2.更新数据/修改数据 3.删除数据 4.小结: 方式一:一条一条添加 1.不指明添加的字段:insert into 表名 values (字段值)         注意:一定要按照声明的字段先后顺序添加 2.指明添加的字段(推荐):insert into 表名(字段名) values (字段值) 3.同时添加多

    2024年02月15日
    浏览(33)
  • pytorch网络的增删改

    本文介绍对加载的网络的层进行 增删改 , 以alexnet网络为例进行介绍。 在做迁移学习的时候,我们通常是在分类网络的基础上进行修改的。一般会把网络最后的几层删除掉,主要是全局平均池化层、全连接层。只留前面的网络部分作为特征提取器,再次基础上进行其他的任务

    2024年02月04日
    浏览(45)
  • 【MySQL】表的增删改查

    表的增删查改简称CRUD:Create(新增),Retrieve(查找),Update(修改),Delete(删除)。 CRUD的操作对象是对表当中的数据,是典型的DML语句(Data Manipulation Language 数据操作语言)。 语法: 说明: SQL中大写的表示,[ ]中代表的是可选项。 SQL中的每个 value_list 都表示插

    2024年02月02日
    浏览(41)
  • MySQL--数据的增删改

    目录  1.添加数据 1.1、添加全部字段的数据 1.2、添加指定字段的部分数据 1.3、同时添加多条记录 1.4、插入查询结果数据  2.修改数据  2.1、更新全部数据 2.2、更新部分数据 3.删除部分数据 3.1、删除部分数据  3.2、删除全部数据 向数据表中的所有字段同时添加数据, 使用

    2024年04月26日
    浏览(28)
  • 【MYSQL】表的增删改查(基础)

    语法: INSERT [INTO] table_name [(column [, column] ...)] VALUES(value_list) [, (value_list)] ... 案例: 语法: SELECT [DISTINCT] {* | {column [, column] ...} [FROM table_name] [WHERE ...] [ORDER BY column [ASC | DESC], ...] LIMIT ... 案例: 为查询结果中的列指定别名,表示返回的结果集中,以别名作为该列的名称 语法:

    2024年02月02日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包