跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. 关于models的字段动态 域值(fields中的domain参数),相关问题。

关于models的字段动态 域值(fields中的domain参数),相关问题。

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

    下面用一个简单的示例来描述问题所在:
    1、首先【库位】这个档案,有一个 “仓库”的字段(store_id),也即“库位”是要挂“仓库”的。
    2、现在某单据存在“仓库”这个字段(store_id),此单据明细 存在 “库位”的字段(goods_place_id)。
    3、现在要求,在更改单据store_id时, 明细中的 goods_place_id 要受到 store_id 的过滤。
    4、question:如何处理上述类似场景的问题?

    1 条回复 最后回复
    0
    • digitalsatoriD 离线
      digitalsatoriD 离线
      digitalsatori 管理员
      写于 最后由 编辑
      #2

      onchange方法可以return对应字段的domain,比如可以定义对应store_id的onchange方法:

      @api.onchange('store_id')
      def onchange_store(self):
          return {'domain': {'goods_place_id': [('store_id', '=', self.store_id)]}}
      

      不过感觉兄弟在重造轮子啊,Odoo里有完整的库存,库位管理。

      【上海先安科技】(tony AT openerp.cn)

      F 1 条回复 最后回复
      0
      • F 离线
        F 离线
        franciewang
        在 回复了 digitalsatori 最后由 编辑
        #3

        @digitalsatori 这个方法试过,这个是要求在同一个模型里,才会生效。我想要的结果是 用主表(单据)中的字段,过滤从表(单据的细单,主表与从表是一对多关系,主表中从表是一个one2many的字段)中的某个字段。

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

          另外,上面仅仅是一个我能想到的示例。

          1 条回复 最后回复
          0
          • digitalsatoriD 离线
            digitalsatoriD 离线
            digitalsatori 管理员
            写于 最后由 编辑
            #5

            也可以把domain写在view上:

            <field name='goods_place_id' domain="[('store_id', '=', parent.store_id)]"/>
            

            这里的parent就是主表

            【上海先安科技】(tony AT openerp.cn)

            F 1 条回复 最后回复
            0
            • F 离线
              F 离线
              franciewang
              在 回复了 digitalsatori 最后由 编辑
              #6

              @digitalsatori 刚刚试了一下你这种写法会直接报错的... 原因是,在goods_place_id对应的模型里,是不存在 这个“parent”的字段的...

              1 条回复 最后回复
              0
              • digitalsatoriD 离线
                digitalsatoriD 离线
                digitalsatori 管理员
                写于 最后由 编辑
                #7

                应该是你写错了。你可以参看Odoo中sale模块中的相关用法:
                https://github.com/odoo/odoo/blob/232a7283a55cb7efe1750ea038b9244df06031e3/addons/sale/views/sale_views.xml#L469

                【上海先安科技】(tony AT openerp.cn)

                F 1 条回复 最后回复
                0
                • F 离线
                  F 离线
                  franciewang
                  在 回复了 digitalsatori 最后由 编辑
                  #8

                  @digitalsatori 可以了,万分感谢!!

                  1 条回复 最后回复
                  0

                  • 登录

                  • 没有帐号? 注册

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