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

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

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 新手求助
  4. 关于domain,如何跨类比较?

关于domain,如何跨类比较?

已定时 已固定 已锁定 已移动 Odoo 新手求助
7 帖子 2 发布者 9.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
        • S Siyuan

          onchange 回掉里动态改domain

          B 离线
          B 离线
          BraidTim
          发表于 最后由 编辑
          #4

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

          S 1 条回复 最后回复
          0
          • B BraidTim

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

            S 离线
            S 离线
            Siyuan
            发表于 最后由 编辑
            #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
                • 版块
                • 标签
                • 热门
                • 用户
                • 群组