(23)odoo中的domain表达式
---------
更新日期:
09:10 2016-03-03 星期四
---------
* Domain 表达式
# 用于过滤记录数,相当于sql的where
('field', 'operator',value) 每个条件表达式是元组类型
第一个是对象的一个column,也就是字段名
第二个是比较运算符
第三个就是用来比较的值
domain=[('user_id', '=', uid)] 当前用户做为条件过滤
#比较运算符如下:
<,>,<=,>=,!=
=?
=like
like
not like
ilike(大小写不敏感)
not ilike
=ilike
child_of 找直接和间接的子对象
in
not in
#条件可以用逻辑符连起来 用列表类型来组织
逻辑运算符作为前缀放置于条件前面
| & 必须两个条件链接 !作用于一个条件 理解时,从里往外剥
& 是且的意思,是默认
|是或
! 是非,相反的意思
['!',('user_id','=',uid)] 不是当前用户的记录
['|',('user_id','=',uid),('user_id','=',False)] 不是当前用户,或没有用户的记录
复杂一点的:
['|', ('message_follower_ids', 'in', [user.partner_id.id]),'|', ('user_id', '=', user.id),
('user_id', '=', False)]
逻辑是连后面两个domain条件
再来一个
['|','|',('group_ids','in',[g.id for g in user.groups_id]),('user_id','=',user.id),
'&',('user_id','=',False),('group_ids','=',False),'|','|',('company_id','=',False),
('company_id','child_of',[user.company_id.id]),('company_id.child_ids','child_of',[user.company_id.id])]
分解理解:
['|',
'|',('group_ids','in',[g.id for g in user.groups_id]),('user_id','=',user.id),
'&',('user_id','=',False),('group_ids','=',False),
'|',
'|',('company_id','=',False),('company_id','child_of',[user.company_id.id]),
('company_id.child_ids','child_of',[user.company_id.id])]
domain="[('create_date','=',(context_today() + datetime.timedelta(days=-1)).strftime('%%Y-%%m-%%d'))]"
domain="[('date','<=',time.strftime('%%d/%%m/%%Y'),
('date','>=',((context_today()-relativedelta(months=3)).strftime('%%d/%%m/%%Y')))]"
过去三个月
# 在Action中定义,domain用于对象默认的搜索条件
<field name="domain">[('state','not in',('draft','sent','cancel'))]</filed>
打开订单窗口,不搜索处于('draft','sent','cancel') 三种状态的订单
# 在对象(或视图)的关联字段 字段值 domain 用于过滤
'product_id':fields.many2one('product.product','Product',domain=[('sale_ok','=',True)],chang_default=True)
定义关联产品,只显示可销售产品
# 在搜索视图 domain用于自定义过滤条件
<field name="name" string="Sale Order" filter_domain="['|'('name', 'ilike',self),('client_order_ref','ilike',self)]"
在搜索视图输入订单编号,同时按订单编号和客户关联编号搜索
<filter string="My Sales Orders" domain="[('user_id','=',uid)]" help="My Sales Orders" icon="terp-personal"
name="my_sale_orders_filter" />
# 在记录规则中定义 domain 用于定义用户对对象记录的访问权限
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
定义用户允许查询未指定分公司或订单指定分公司用户具有的访问权限的销售订单
['|',('section_id','=',user.default_section_id.id),('section_id','=',False)]
查看自己的团队
* 实例:
# 过滤当天的订单
[('date_order','<=', datetime.datetime.combine(
context_today(),datetime.time(23,59,59))),
('date_order','>=', datetime.datetime.combine(context_today(), datetime.time(0,0,0)))]
(23)odoo中的domain表达式的更多相关文章
- Odoo中的domain
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826127.html 一:domain表达式 domain表达式:通常用来筛选数据记录.它们使用特殊的语法 ...
- Odoo 中group domain的优化应用
首先一个前提是 odoo 默认情况下 一个menu 只能绑定一个action 而这个action中只有一个domain,而我们的需求是需要点击菜单,然后根据用户所属的组的不同而选择不同的action, ...
- 利用Python的三元表达式解决Odoo中工资条中城镇、农村保险的问题
Python中没有像C#中有三元表达式 A?B:C 但在python中可以通过 A if condition else B 的方式来达到同样的效果. 例如 : 1 if True else 0 输出 ...
- (19)odoo中的javascript
-----------更新日期15:17 2016-02-16 星期二-----------* 用到的js库 我们可以打开 addons/web/views/webclient_template. ...
- Odoo中的五种Action详解
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826232.html Odoo中的五种action都是继承自ir.actions.actions模型实现的 ...
- Odoo中的ORM API(模型数据增删改查)
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826214.html 一:增 1:create():返回新创建的记录对象 self.create({'na ...
- Odoo中Qweb使用入门
参考 可参考官网例子https://doc.odoo.com/trunk/web/qweb/或 http://thierry-godin.developpez.com/openerp/tutorial ...
- C#中的Lambda表达式和表达式树
在C# 2.0中,通过方法组转换和匿名方法,使委托的实现得到了极大的简化.但是,匿名方法仍然有些臃肿,而且当代码中充满了匿名方法的时候,可读性可能就会受到影响.C# 3.0中出现的Lambda表达式在 ...
- odoo中self的使用
一:self是什么 目前新版的Odoo中使用到的self,是对 游标cr.用户ID.模型.上下文.记录集.缓存 的封装. 我们可以通过 self.XX 获取到这些封装的东西,比如:self.cr. ...
随机推荐
- SQL事务回滚样例
选课系统,当同意学号选课数量超过则回滚事务,符合条件则正常插入数据 --开始一个事务处理Begin Tran T1 --执行插入操作insert into Courselist values('201 ...
- JAVA WEB SpringMVC+Spring+hibernate 框架搭建【转】
http://my.oschina.net/Thinkeryjgfn/blog/158951
- [转]Unity3D:Gizmos画圆(原创)
using UnityEngine; using System; public class HeGizmosCircle : MonoBehaviour { public Transform m_Tr ...
- 如何使用NUnit
http://www.c-sharpcorner.com/UploadFile/84c85b/nunit-with-C-Sharp/ 从github上下载安装包 NUnit.3.4.1.msi htt ...
- python_way day12 RabbitMQ ,pymysql
python_way day12 1.RabbitMQ 2.pymysql RabbitMQ 1.基本用法 """ producer """ ...
- 简单的poi导出excel文件
/**** 创建excel文件**/ 1 import java.io.FileOutputStream; import java.io.IOException; import java.util.C ...
- ThreadLocal 实现线程内共享变量
package com.cn.gbx; import java.util.Date; import java.util.Random; import java.util.Timer; import j ...
- mysql 权限控制
1.mysql的权限是,从某处来的用户对某对象的权限. 2.mysql的权限采用白名单策略,指定用户能做什么,没有指定的都不能做. 3.权限校验分成两个步骤: a.能不能连接,检查从哪里来,用户名和密 ...
- Java 文件IO
文件IO Java IO IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 按操作数据分为 字节流和字符流 字符流的 ...
- jquery定位
1.$("div").offset().left ; div到文档的左距离(offset() 方法返回或设置匹配元素相对于文档的偏移) $("div").off ...