Domain的使用场景

Domian使用的场景非常多,比如:

  • search方法中的domian过滤条件
  • 视图中的过滤条件
  • 视图属性中的过滤条件
  • 过滤规则中的过滤条件
    不同的场景下的过滤条件略有不同。

视图中的domain

uid: 当前用户的UID
视图中的domain只支持简单类型的值,比如,字符、整形、浮点型等。也就是说,不支持通过属性方式的引用:

<field name="out_location" position="before"><field name="current_user" invisible="0"/>
</field>
<field name="out_location" position="attributes"><attribute name="domain">[('usage','=','internal'),('id','=',current_user.id)]</attribute>
</field>

current_user字段是当前登录的用户,像上面这种方式,就会提示错误:

如果有计算的需求,这里的建议是新建一个compute的字段,将计算后的值赋给新字段。比如上面的例子可以写为:

<field name="out_location" position="before"><field name="current_user_id" invisible="1"/>
</field>
<field name="out_location" position="attributes"><attribute name="domain">[('usage','=','internal'),('id','=',current_user_id)]</attribute>
</field>

窗口动作中的domain

通常我们给菜单设置过滤,是通过给菜单绑定的动作设置domain来完成的,这里的domain写法跟其他的domain写法并无不同。只是在某些特定的情况下,我们需要使用一些特殊的技巧:

domain中需要使用ref的情况

如果我们像常规的方式:

<field name="domain">[('abc','=',ref('xxx.xxx'))]</field>

系统会提示ref不可用,这个时候我们就需要变通一下,使用eval函数将其转换为如下的形式:
<field name="domain" eval="[('abc','=',ref('xxx.xxx'))]"</field>

过滤规则中的domain

可以直接使用的变量:
user: 当前登录的用户

操作符

Odoo中受支持的操作符有:!(否定),|(或),&(且)。这三个用于domain的连接。另外还有诸如:‘=’, ‘!=’, ‘<=’, ‘<’, ‘>’, ‘>=’, ‘=?’, ‘=like’, ‘=ilike’, ‘like’, ‘not like’, ‘ilike’, ‘not ilike’, ‘in’, ‘not in’, ‘child_of’ 用于domain内部的条件判定。

  • like: 大小写敏感的 %%。例如:[(‘input’, ‘like’, ‘open’)],可以匹配 open, opensource, openerp, Odooopenerp
  • not like: 大小写敏感的不匹配操作符。
  • =like: 大小写敏感的全匹配 例如:[(‘input’,‘=like’,‘open’)],只能匹配open
  • ilike: 大小写不敏感的半匹配,例如 [(‘name’, ‘ilike’, ‘open’)] 能匹配 Openerp, openerp, Opensource, opensource, Open, open, Odooopenerp, OdooOpenerp
  • not ilike: 大小写不敏感的不匹配
  • =ilike: 大小写不敏感的全匹配,[(‘name’, ‘=ilike’, ‘open’)]可以匹配 Open和open
  • =?: 意思是如果某个过滤条件返回的结果是None或False则以True替代。例如: name = ‘odoo’ parent_id = False [(‘name’, ‘like’, name), (‘parent_id’, ‘=?’, parent_id)],将返回name的domain过滤结果&True。如果过滤条件是 name = ‘odoo’ parent_id = ‘openerp’ [(‘name’, ‘like’, name), (‘parent_id’, ‘=?’, parent_id)] 则将返回两个过滤条件的且的结果。
    zyf——何双薪

odoo里面 Domain相关推荐

  1. odoo onchange domain

    odoo 动态改变字段domain

  2. odoo domain详解

    odoo domain详解 参考的以下文档: luohuayong:Odoo domain写法及运用 baimo:odoo domain表达式 1.domain 表达式规则 最简单的格式:[('字段名 ...

  3. odoo关系型字段domain写法

    1.  多对一关系: Many2one 2. 多对多关系: Many2many 3. 一对多关系: One2many 1.  多对一关系: Many2one ondelete 属性  no atcti ...

  4. ODOO权限管理,在两个方面设置权限

    转载参考https://zhuanlan.zhihu.com/p/29130388 在odoo中新建两个用户user1,user2 新建用户 建完了用户,记得编辑用户,设置密码. 然后以user1用户 ...

  5. odoo API装饰器one、model、multi的区别

    1.one装饰器详解 odoo新API中定义方式:     date=fields.Date(string="date",compute="_get_date" ...

  6. odoo13 订单模板设置_免费开源ERP Odoo 13系统E-mail邮件功能设置操作指南

    本文节选老杨.老肖共同撰写的<ERP真的免费不花钱-Odoo13实施应用手册(高级应用版)>当中的部分内容.完整内容请向开源智造获取<ERP真的免费不花钱(高级应用版)>手册 ...

  7. 服务器中用于接收电子邮件,‎如何使用我的邮件服务器在 Odoo 中发送和接收电子邮件‎...

    Choose allowed "From" email addresses¶ Sometimes, an email's "From" (outgoing) a ...

  8. Odoo Excel报表的设计及实现

    前言: 报表是ERP中必不可少的一个部分,很多ERP开发人员都经历过写报表和改报表,偶尔改报表改到最后不得不重构报表的情况.最近我接了两个改报表的任务(新增一种排序和合计规则),结果改原代码改到90% ...

  9. Odoo 8.0深入浅出开发教程

    转自:http://blog.sunansheng.com/python/odoo/odoo.html Table of Contents 1. ERP简介 1.1. Odoo历史 1.2. ERPⅡ ...

最新文章

  1. 关闭tomact被占用的进程
  2. linux mount挂载文件夹设置权限
  3. 异步I/O 设备内核对象,事件内核对象,可提醒I/O 接收I/O通知
  4. ITK:从三个标量图像组成矢量
  5. Zookeeper_原生API操作(一)
  6. mvn 本地jar包 加入自己的maven仓库
  7. 那些我当了程序员以后才理解的崩溃瞬间!
  8. sql server 游标和with as使用
  9. Some Sites About .Net
  10. ant脚本 变量赋值_【Jmeter】Jmeter+ant+jenkins持续集成
  11. 修正读取ISO中文命名的FatmsMod补丁第二版下载发布
  12. 黑帽SEO-网页劫持
  13. 基于STM32的物联网健康监测系统设计(附源码)
  14. 终身受用的企业网盘文件管理方案!
  15. 简单上手理解Dav框架
  16. matlab 椭圆方程拟合,matlab中如何插值拟合求椭圆方程
  17. python是一种代表简单主义思想的语言_python区别于其他语言的优势是什么
  18. CentOS7中使用yum安装php5.6的方法
  19. 数影周报:程序员离职后锁公司硬盘;Salesforce 遭遇高管离职潮
  20. 小程序开源项目库汇总

热门文章

  1. 使用 dockerfile 构建 WordPress 环境
  2. HANA常用语法(持续更新)
  3. 关于uni.requestPayment支付
  4. 利用windowManager在所有窗口之上填出一个界面,类似来电界面。
  5. FL Studio21中文完整版升级下载
  6. 「Go 实战营系列」微服务架构设计模式
  7. SCAU------1079 三角形
  8. steam你画我猜中文版
  9. 【汇正财经】股票和债券的区别有哪些?哪个风险比较小?
  10. 记一次 Java 进程里面获取 Mysql 连接超时的问题排查(OOM)