Domain的写法
Domain是一个元组,由3个元素组成 (字段名, 操作符, 值)
字段名如果是Many2one/Many2Many/One2many字段,可以通过"."取出对应的属性,如:
("routing_id.operation_ids.workcenter_id","=", active_id)操作符
符号 | 说明 |
---|---|
=,>.<,>=,<=,!= | 比较运算,等于,不等于,大于,大于等于,小于,小于等于 |
like | 模糊匹配,通过%value%匹配 |
=like | 可以使用模式匹配,下划线-匹配一个字符,百分号%匹配零或者多个字符 |
ilike | 类似like,但是忽略大小写 |
=ilike | 类似=like,但是忽略大小写 |
not like | 通过%value%不匹配的 |
not ilike | 类似not like,但是忽略大小写 |
=? | 未设置或者等于,未设置表示当值是None或者是False,其余和=一样 |
in | 判断value是否在元素的列表里面 |
not in | 判断value是否不再元素的列表里面 |
child_of | 判断是否value的子记录 |
示例:
("company_id","child_of",[user.company_id.id]) ("company_level","not in",("common_company"))
有一个要注意的地方,"in"可以反向表示,比如:
("user_ids", "in", user.id)
应用场景是当一个model中的字段是user_ids = field.Many2many("res.users"),我们可以将这个model的权限赋给这些用户,只有这些用户可以访问
值mrp_dashboard_rule [("user_ids", "in", user.id)]
包括字符串,True或False,数字等
在xml中,能取出当前登录用户user对象,你可以取出user.id,user.company_id.id等
符号 | 说明 |
---|---|
& | "AND"或者"与",表示后面2个条件同时满足。默认关系,可以省略 |
| | "OR"或者"或",表示后面2个条件满足一个就行 |
! | "NOT"或者"非",将后面一个条件反转,如果是True,就变成False |
示例:
[("name", "=", "Allen"), "|", ("language.code", "!=", "en_US"), ("company_id", "=", user.company_id.id)]Domain的使用场景 1.关联字段
(Many2one/One2many/Many2many)过滤出不同的选择结果
default_debit_account_id = fields.Many2one("account.account", string="Default Debit Account", domain=[("deprecated", "=", False)])
如上:只有当account.account中字段deprecated=False的记录才能被选择显示
2.过滤出想要显示的记录在ir.actions.act_windon中添加Domain,当某个地方调用这个动作时,只显示符合domain条件的记录
3.权限过滤Opportunities crm.lead kanban,tree,form,graph,calendar [("type","=","opportunity")] { "search_default_partner_id": active_id, "default_type": "opportunity" }
4.搜索过滤Account Entry ["|",("company_id","=",False),("company_id","child_of",[user.company_id.id])]
crossovered.budget.search crossovered.budget
Domain的使用场景还有许多,我就不一一列举了。
Domain的介绍就到此结束了,有什么问题,请大家多多指教。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/41680.html
摘要:今天这个系列教程即将迎来它的最后一篇内容了,我们将要来学习中权限相关的内容。在的权限管理体系中,同样也有用户组这一概念的存在,和其他框架如可以说大同小异。通常和权限相关的内容,我们都会在模块的目录下进行定义,记录集规则的定义自然也不例外。 在今年的情人节(2018.02.14)那天,我写了一篇博客说即将要开一个坑,也就是大家在看的这个系列的教程。今天这个系列教程即将迎来它的最后一篇内容...
摘要:在前面教程中,我们使用了两种类型的视图和今天我们将学习使用另一种类型的视图搜索视图。大家可以试试看同时应用多个分组,或者将分组和过滤器组合使用,仔细观察和思考产生的结果。还是老规矩,教程中的代码会更新在仓库中。 showImg(https://segmentfault.com/img/bVbgO85?w=1950&h=1300); 在前面教程中,我们使用了两种类型的视图——TreeVi...
摘要:安装好后,在中执行查看版本信息,应该会看到输出如下信息版本号可能会不同如果提示未找到,则需要手动将用户基础目录下的添加到中。相关文章基础教程系列第篇开天坑啦 showImg(https://segmentfault.com/img/bV4GZu?w=1262&h=911); 之前说好的 「Odoo 基础教程系列」终于来了(撒花)~刚过完年重新投入到工作中,一下子事情有点多都要忙不过来了...
最终实现的样子 showImg(https://segmentfault.com/img/bVbu6hU?w=1273&h=652); 代码 sale_views.xml(不做解释,可以一起学习探讨) view.sale.order.line.inherit.sale.history sale.order ...
阅读 2690·2023-04-26 02:02
阅读 2521·2023-04-25 20:38
阅读 4068·2021-09-26 09:47
阅读 3061·2021-09-10 10:50
阅读 3743·2021-09-07 09:58
阅读 3310·2019-08-30 15:54
阅读 2673·2019-08-30 15:54
阅读 1885·2019-08-29 17:03