Odoo 中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    Openerp 中的 domain

    Odoo 开发与实施交流
    11
    12
    13844
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Q
      qdfulee 最后由 编辑

      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
      • wjfonhand
        wjfonhand 最后由 编辑

        精彩!

        GoodERP -- Odoo China fork

        1 条回复 最后回复 回复 引用 0
        • mrshelly
          mrshelly 最后由 编辑

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

          1 条回复 最后回复 回复 引用 0
          • A
            andytang18 最后由 编辑

            谢谢分享!!!

            1 条回复 最后回复 回复 引用 0
            • L
              lux 最后由 编辑

              非常好!要顶!

              1 条回复 最后回复 回复 引用 0
              • C
                ccdos 最后由 编辑

                很好,学习了,谢谢分享

                1 条回复 最后回复 回复 引用 0
                • C
                  cnshen 最后由 编辑

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

                  1 条回复 最后回复 回复 引用 0
                  • C
                    codefans 最后由 编辑

                    不错

                    1 条回复 最后回复 回复 引用 0
                    • 5
                      570249383 最后由 编辑

                      ;D很好,学习了

                      1 条回复 最后回复 回复 引用 0
                      • A
                        a136794drt 最后由 编辑

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

                        1 条回复 最后回复 回复 引用 0
                        • Joshua
                          Joshua 管理员 最后由 编辑

                          [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
                          • First post
                            Last post