跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. Openerp 中的 domain

Openerp 中的 domain

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
12 帖子 11 发布者 14.5k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • Q 离线
    Q 离线
    qdfulee
    写于 最后由 编辑
    #1

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

    domain中的单个条件是一个三个元素组成的元组。第一个是对象的一个column,也就是字段名;第二个是比较运算符=, !=, >, >=, <, <=, 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])

    1 条回复 最后回复
    0
    • wjfonhandW 离线
      wjfonhandW 离线
      wjfonhand
      写于 最后由 编辑
      #2

      精彩!

      GoodERP -- Odoo China fork

      1 条回复 最后回复
      0
      • mrshellyM 离线
        mrshellyM 离线
        mrshelly
        写于 最后由 编辑
        #3

        赞......... 写得好....

        1 条回复 最后回复
        0
        • A 离线
          A 离线
          andytang18
          写于 最后由 编辑
          #4

          谢谢分享!!!

          1 条回复 最后回复
          0
          • L 离线
            L 离线
            lux
            写于 最后由 编辑
            #5

            非常好!要顶!

            1 条回复 最后回复
            0
            • C 离线
              C 离线
              ccdos
              写于 最后由 编辑
              #6

              很好,学习了,谢谢分享

              1 条回复 最后回复
              0
              • C 离线
                C 离线
                cnshen
                写于 最后由 编辑
                #7

                谢谢分享。
                在楼主的基础上进一步整理了一下,把示例简化了一下。
                <br / http://www.cnblogs.com/cnshen/p/3189306.html br />

                1 条回复 最后回复
                0
                • C 离线
                  C 离线
                  codefans
                  写于 最后由 编辑
                  #8

                  不错

                  1 条回复 最后回复
                  0
                  • 5 离线
                    5 离线
                    570249383
                    写于 最后由 编辑
                    #9

                    ;D很好,学习了

                    1 条回复 最后回复
                    0
                    • A 离线
                      A 离线
                      a136794drt
                      写于 最后由 编辑
                      #10

                      domain好像并不适用model中的one2many字段,试过多次,没有过滤。

                      1 条回复 最后回复
                      0
                      • JoshuaJ 离线
                        JoshuaJ 离线
                        Joshua 管理员
                        写于 最后由 编辑
                        #11

                        [quote author=a136794drt link=topic=5864.msg30713#msg30713 date=1437546279]
                        domain好像并不适用model中的one2many字段,试过多次,没有过滤。
                        [/quote]


                        不知道你的domain语句是怎样的呢?实际上是适用x2m字段的,odoo默认模块就有这样的例子:

                        &#91;&#039;|&#039;, (&#039;message_follower_ids&#039;,&#039;in&#039;,[user.partner_id.id]), (&#039;partner_id.id&#039;,&#039;=&#039;,user.partner_id.id)]
                        

                        【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

                        1 条回复 最后回复
                        0

                        • 登录

                        • 没有帐号? 注册

                        • 登录或注册以进行搜索。
                        • 第一个帖子
                          最后一个帖子
                        0
                        • 版块
                        • 标签
                        • 热门
                        • 用户
                        • 群组