小编Ant*_*njo的帖子

是否可以在 Odoo v10 中进行交易?如果是,怎么做?

好吧,我的函数中有很多操作。有一个循环,里面有一个self.create()函数,在它里面还有另一个包含另一个create函数的循环,依此类推……但它们的 ID 相互依赖。

这是一个代码示例(缩小)

@api.multi
def create_report(self):
    id_report = None
    reports = [ResumeReport(resume) for resume in data] # a tab containing many reports to be created
    repo = self.env["module1"].search([("date", "=", str(date))])
    if repo:
        for r in repo:
            id_report = r
    else:
        id_report = self.env["module1"].create({
                'name': name
            })
    for rep in report:
        self.env["module2"].create({
                                'report_id': id_report.id,
                                'name': name
                            })
Run Code Online (Sandbox Code Playgroud)

所以我想做的是把这段代码放在一个事务下。这将是一个相当大的 SQL 操作,所以当发生错误时,我希望它被回滚并取消所有操作(事务!)。否则提交。但我不知道是否有可能在 Odoo 10 中做到这一点,因为我没有找到任何关于 transaciton 的文档。

请问你能帮帮我吗?

解决了

@api.multi
def create_report(self):
self._cr.autocommit(False)
try:
    id_report = …
Run Code Online (Sandbox Code Playgroud)

python transactions odoo-10

5
推荐指数
0
解决办法
1909
查看次数

标签 统计

odoo-10 ×1

python ×1

transactions ×1