python - 如何在搜索函数中取消 OR 中的 AND?在 Odoo 9

标签 python odoo odoo-9

我想在 odoo 9 的搜索功能中对 OR 中的 AND 运算符进行 anidate。

我有这两个条件:

A = self.env['sale.order'].search(['&', ('state', '=', 'done'), ('id', '>', my_id)])
B = self.env['sale.order'].search([('date_order', '>', my_date)])

这些条件每个单独工作都很好,但我需要 AB

我试过这个:

C = self.env['sale.order'].search(['|', ('date_order', '>', my_date), ('&', ('state', '=', 'done'), ('id', '>', my_id))])

那是行不通的。它给了我这个错误:

ValueError: "Invalid leaf ('&', ('state', '=', 'done'), ('id', '>', my_id))" while evaluating

设置条件的正确方法是什么?

最佳答案

这应该始终在二元组之前使用运算符:

    C = self.env['sale.order'].search(['|', ('date_order', '>', my_date), '&', ('state', '=', 'done'), ('id', '>', my_id)])

编辑:

这与:

    ('date_order', '>', my_date)  OR (('state', '=', 'done') AND ('id', '>', my_id))

示例:

     A and (B or ( C AND D))

     A and (B or (AND, C, D))

     A and,( or, B, AND, C, D)

     and, A, or, B, AND, C, D 

关于python - 如何在搜索函数中取消 OR 中的 AND?在 Odoo 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43741256/

相关文章:

python - 为什么 python.org OS X 安装程序是用 gcc-4.0 构建的?

python - 布雷森纳姆线没有终点站

python - 如何增量填充 Pandas 数据框中缺失的时间戳?

pdf - Odoo8 Qweb 生成的 pdf 文档。第二页的表格行被卡住

opencv - 如何在看板 View 中显示多多字段,没有颜色标签

python - 如何在html文件中加载css文件已经在django中扩展了另一个html文件(base.html)

python - 模型 "res.config.settings"中不存在字段

python - Odoo 11 在同一模型的两个不同区域添加不同的操作菜单

javascript - 奥杜。隐藏字段选择中的一些选项

openerp - 从 Ubuntu 14.04 桌面删除 Odoo 9?