DTCloud前端+后端orm操作实现

1、前端orm,其实就是通过call方法调用后端orm的增删改查,说明如下:
自带api注册文件地址:/addons/web/static/src/core/orm_service.js
this.orm = useService(“orm”);
API:
1.call
参数: model(模型) method(模型方法) args(方法参数) kwargs(可变参数)
例子:orm.call(model, "read", [ids, fields], { context: ctx })
2.create
参数: model(模型) state(创建内容对应py create方法vals参数) ctx(context)
例子:orm.create("partner", { color: "red" })
3.read
参数: model(模型) ids(数据集ids) fields(读取字段) ctx(context)
例子:orm.read("res.users", [3], ["id", "name"], { earth: "isfucked" })
4.readGroup
参数: model(模型) domain(筛选条件) fields(读取字段) groupby(分组字段) options(参数,只接收"lazy", “offset”, “orderby”, “limit”) ctx(context)
例子:orm.readGroup("sale.order",[["user_id", "=", 2]],["amount_total:sum"],["date_order"],{ offset: 1 });
5.search
参数: model(模型) domain(筛选条件) options(参数,只接受"offset", “limit”, “order”) ctx(context)
例子:orm.search("res.users", [["name", "=", ‘张三’]], {limit: 1})
6.searchRead
参数: model(模型) domain(筛选条件) options(参数,只接收"offset", “limit”, “order”) ctx(context)
例子:orm.searchRead("sale.order", [["user_id", "=", 2]], ["amount_total"])
7.unlink
参数: model(模型) ids(数据集ids) ctx(context)
例子:orm.unlink("ir.attachment", [1,2]);
8.web_search_read
参数: model(模型) domain(筛选条件) options(参数,只接收"offset", “limit”, “order”) ctx(context)
例子:orm.searchRead("sale.order", [["user_id", "=", 2]], ["amount_total"])
9.write
参数: model(模型) ids(数据集ids) data(修改参数) ctx(context)
例子:orm.write("partner", [43, 14], { active: false });

2、后端orm:
1、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

执行时间:点击创建-保存时执行

2、write函数:(改)

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

3、unlink函数:(删)

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

4、read,search,和search_read函数(查)

read:

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

res的打印内容

search函数:一般不重写search。此处介绍使用方法及参数作用:

search([
       ('name', '=', attachment_name),
       ('res_model', '=', self.model),
       ('res_id', '=', record.id)
       ], limit=1)

第一个列表为domain,limit为输出一条数据,更多参数请详细研究odoo源码

search_read函数

search_read(domain,fileds)
# domain 查询条件
# fields 显示的字段name
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜振建 15954039008

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值