zoukankan      html  css  js  c++  java
  • openerp domain 規則

    oe中的domain多用于自定义搜索条件。

    domain中的单个条件是一个三个元素组成的元组。第一个是对象的一个column,也就是字段名;第二个是比较运算符``=, !=, & gt;, >=, <, & lt;=, like, ilike, in, not in, child_of, parent_left, parent_right``;第三个就是用来比较的值了。多个条件用“|”(or),“&”(and),“!”(no)逻辑运算符链接。逻辑运算符作为前缀放置于条件前面。“|”与 “&”必须两个条件链接,“!”对一个条件取反。默认逻辑运算符为“&”。

    举个例子:

    ['|','|',('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])]

    写个容易看的方式:

    (('group_ids','in',[g.id for g in user.groups_id]) or ('user_id',  '=', user.id)) or (('user_id', '=', False) and ('group_ids','=',False)) or (('company_id','=',False) or ('company_id','child_of',[user.company_id.id])) or ('company_id.child_ids','child_of',[user.company_id.id])

  • 相关阅读:
    我的php学习笔记(三十六)PHP中开发自己的UBB代码
    Eclipse和MyEclipse安装和使用git(egit)图解笔记
    在ECSHOP首页增加一个浏览排行
    计算机网络
    游戏系统开发笔记(四)——游戏程序简介
    【自考】操作系统概论
    ZOJ 3700 Ever Dream 文章中单词的处理
    【自考】计算机网络技术
    Lvm 折腾小记
    UbuntuKylin的美好前景
  • 原文地址:https://www.cnblogs.com/chjbbs/p/3837501.html
Copyright © 2011-2022 走看看