Oejia 技术栈
首页
应用市场
方案
OE学院
分享
关于
编辑器
登录
Odoo 中的 domain 的解析及各种使用例子
admin
on 2018-08-31
### 概述 domain主要用于数据的过滤,通常为一个数组,数组元素为过滤条件,每个条件是一个三元表达式,例如: [('state','=','confirm'), ('user_id','in',[1,2,3])] domain多个条件的逻辑运算使用了“波兰表示法”,波兰表示法的特定是操作符置于操作数前,运算顺序为:从左至右读入表达式,遇到一个操作符后跟随两个操作数时,则计算之,然后将结果作为操作数替换这个操作符和两个操作数;重复此步骤,直至所有操作符处理完毕。 逻辑运算符: - | 代表“或” - & 代表“且” - !代表“非” 条件的操作符主要有如下类型 操作符|说明| ---|----|--- =,!=,>,>=,<,<= |比较运算,等于,不等于,大于,大于等于,小于,小于等于 like |模糊匹配,可以使用通配符,下划线“_”匹配一个字符,百分号“%”匹配零或者多个字符 ilike |类似like,不区分大小写 not like |模糊不匹配的 in |包含,判断值是否在元素的列表里面 not in |不包含,判断值是否不在元素的列表里面 child_of |判断是否value的子记录,通过_parent_name实现,不太理解 parent_left | parent_right | 默认条件之间是按“且”的方式计算 举例:商城搜索支持条码和内部编号搜索及名称搜索 ``` domain += ['|', ('name', 'ilike', srch), '|', ('barcode', '=', srch), ('default_code', '=', srch)] ``` ### domain使用场景 权限管理中的行级权限 ``` <record model="ir.rule" id="rule1"> ... <field name="domain_force">[1,’=’,1]</field> ... </record> ``` 列表视图的强制过滤 ``` <record id="srm_material_action_320" model="ir.actions.act_window"> ... <field name="domain">[('stype', '=', 6)]</field> ... </record> ``` 字段外键记录的过滤 ``` template_approver = fields.Many2one('res.users', string='评估模版审核人', domain=lambda self: [('id', 'in', self.env.ref('xxx.group_spe_approver').users.ids)]) ``` ``` category_id = fields.Many2one('srm.category', string='选择发起的品类', domain=[('template_ids.state','=','confirmed')]") ``` 表单视图外键选择的过滤 ``` <form> <field name="domain_user_ids" invisible="1" /> <field name="user_ids" domain="[('id', 'in', domain_user_ids)]" attrs="{'readonly': [('user_id', '=', False)]}" widget="many2many_tags"/> </form> ```
Information
Odoo 中的 domain 的解析及各种使用例子
http://www.oejia.net/article/ce115599a47059003fa3799f835c0c7c
http://www.oejia.net/raw/ce115599a47059003fa3799f835c0c7c
admin
on 2018-08-31
Category
Odoo
Related
2020-07-14 :
Odoo在部分手机浏览器访问时报“未知的CORS错误”的解决办法
2020-03-26 :
OE商城优惠券、秒杀、特价活动模块
2021-02-18 :
Git
2018-11-09 :
微信开发
2017-08-10 :
DjangoX 列表页自定义计算列的使用
2022-04-29 :
微信模块 Oejia_wx v0.6.6 发布,优化扫码事件处理及通讯录变更的同步
2020-09-30 :
微信模块 Oejia_wx v0.6.3 发布,多项兼容优化,即将全面适配 Odoo14
2020-09-30 :
Odoo 小程序商城模块 Oejia_weshop v0.2.2 发布,全面支持多公司销售机制
2023-09-28 :
Odoo商城模块 Oejia_weshop v1.2 发布,多商户、分销增强,增加商家端!
2018-02-08 :
如何自定义扩展Odoo前端控件widget
官方订阅号
关注订阅实时了解我们更多分享
分类
(20)
Django (3)
DjangoX (13)
JS (2)
Nginx (1)
Odoo (134)
Python (1)
YouMd (3)
公告说明 (2)
前端 (2)
后端HTTP (7)
异常处理 (1)
桌面UI (1)
移动开发 (4)
About This Entry
Odoo 小程序商城模块
Odoo 微信模块企业版
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Web
Http
客服系统
HTML5
审批OA
OE商城
Markdown
DjangoX
解析
Excel
Python
YouPBX
示例
markdown
md
PyQT
oeshop
服系统
最近发布
OSError [Errno 5] Input/output error 异常处理
Odoo context 的常见使用示例
Odoo 符合国人菜单导航习惯的后台主题,支持最新的Odoo17、16等版本,支持企业版!
Odoo 官方应用市场开启 Odoo17 应用的发布!增加了行业应用专栏
Odoo商城模块 Oejia_weshop v1.2 发布,多商户、分销增强,增加商家端!
处理 Error Failed to download metadata for repo ‘appstream‘ Cannot prepare internal mirrorlist
Odoo 16 关键变化 change the term "acquirer" to "provider"
企业微信错误码 81013 的排查与处理
Odoo商城模块 Oejia_weshop v1.1 发布,支持Odoo16及下单子账号特性
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子