跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. 关于domain,如何跨类比较?

关于domain,如何跨类比较?

已定时 已固定 已锁定 已移动 Odoo 新手求助
7 帖子 2 发布者 7.3k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • B 离线
    B 离线
    BraidTim
    写于 最后由 编辑
    #1

    比如有一个包含字段A1的A类,包含字段B1,B2的B类,其中B2为many2one A
    在domain中如何比较B1和A1的值?
    具体比如当新建B的时候,我希望先填写B1,然后根据B1的值过滤筛选一部分B2的可选条目

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

      onchange 回掉里动态改domain

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

        @Felix_Cheng
        field name="B2" domain="[('B1', 'operator', parent.A1)]"
        似乎在many2one里面使用domain,字段名字直接就是A里面的名字
        我这儿是odoo10,field name="B2" domain="[('A1', 'operator', value)]"这样写就能运行,但是类似上面那样写
        field name="B2" domain="[('B1', '=', 1)]"
        直接就显示
        ValueError: Invalid field u'B1' in leaf "<osv.ExtendedLeaf: (u'B1', u'=', 1) on meeu_v1_warehouse_product_manage (ctx: )>"
        顺便问问value是不需要引号的吗?

        1 条回复 最后回复
        0
        • B 离线
          B 离线
          BraidTim
          在 回复了 Siyuan 最后由 编辑
          #4

          @Siyuan
          能给个简单的例子或者什么模块里有现成的让我学学么?我看教程只有个onchange弹出提示的简单例子,还不知道怎么动态改view的内容。。。谢谢

          S 1 条回复 最后回复
          0
          • S 离线
            S 离线
            Siyuan
            在 回复了 BraidTim 最后由 编辑
            #5

            @BraidTim

            例如 account 下面 account_invoice.py

            @api.onchange('product_id')
            def _onchange_product_id(self):
                domain = {}
            ......
                return {'domain': domain}
            

            动态修改了product_id 的domain

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

              @felix_cheng
              谢谢,换过来就对了。本类里面的字段也不用引号是吧?之前我可能加了引号,系统当字符串处理所以还是不行。
              也就是说字段和数字,bool都不用加引号,字符串需要加引号这样?
              对比的时候数据类型会自动转换么?比如如果我想比较date这种,看起来是字符串但是有大小之分的。还是要专门写函数什么的?

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

                @felix_cheng
                先多谢细心指导
                我在另一个帖子也看到您关于domain的解答,那个帖子问的是直接写在many2one定义里面的domain。我想请问问domain直接在定义字段的时候写和在view中写有什么有略,两种分别有什么适用场景?

                1 条回复 最后回复
                0

                • 登录

                • 没有帐号? 注册

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