码迷,mamicode.com
首页 > 其他好文 > 详细

doamin 过滤条件

时间:2019-11-08 12:13:23      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:操作   focus   通过   list   操作符   等于   search   field   模糊查询   

doamin 过滤条件

在odoo中,通过domain来过滤数据记录

domain是一个list,里面有多个条件

条件是一个有3个元素的元祖 (‘字段名‘,‘比较操作符‘,‘值‘)

  • 字段名

当前模型的字段或者是通过点操作符访问当前模型的Many2one / Many2Many对象。如果左边是Many2Many对象的时候,则表示左边只要任意一个值符合条件则符合条件。

  • 比较操作符

操作符含义
= 等于
!= 不等于
>= 大于等于
> 大于
<= 小于等于
like 模糊查询
ilike 忽略大小写,模糊查询
not like 模糊不匹配
in 包含在内
not in 不包含
child_of 判断是否是value的子集

 

进行筛选的变量,必须能通过操作符来和字段进行比较。

比如你要过滤出产品为服务类型并且价格大于1000的产品

domain = [(‘product_type‘, ‘=‘, ‘service‘), (‘unit_price‘, ‘>‘, 1000)] domain作用在一个model上用model.search(domain)

默认的 domain是以and的方式连接2个条件也就是说 上面的domain表达式等于 [‘&‘,(‘product_type‘, ‘=‘, ‘service‘), (‘unit_price‘, ‘>‘, 1000)],and用&表示(逻辑操作符),这种把操作符放在前面的表达式叫做波兰表示法

 

  • 逻辑操作符

    • & (AND) 接2个操作数

    • | (OR) 接2个操作数

    • ! (NOT) 接1个操作数

[‘|‘,(‘product_type‘, ‘=‘, ‘service‘),‘!‘, ‘&‘,(‘unit_price‘, ‘>=‘, 1000),(‘unit_price‘, ‘<‘, 2000)] 读法,先看最后一个逻辑符 后面所有的条件作为操作数, 变成[‘|‘, (‘product_type‘, ‘=‘, ‘service‘), ‘!‘, cond] 同样规则[‘|‘, (‘product_type‘, ‘=‘, ‘service‘), cond]

domain的另外一个用途是用在关联字段里,可以在model.py field里定义或在xml view的field里, 过滤关联字段记录

 

doamin 过滤条件

标签:操作   focus   通过   list   操作符   等于   search   field   模糊查询   

原文地址:https://www.cnblogs.com/itelephant/p/11819150.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!