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()
如下:
即:先获取res.users表为对象,再将该表中id为1的记录删除掉test = self.env['res.users'] test.search([('id', '=', '1')]).unlink()
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)
文章来源:https://www.toymoban.com/news/detail-437865.html
注:如果不需要权限进行增删改查,则直接在模型后面加上sudo()(一般适用于接口)
如:request.env[“academy.teachers”].sudo().search([(“id”, “=”, pk)])文章来源地址https://www.toymoban.com/news/detail-437865.html
到了这里,关于Odoo的增删改查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!