跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. 求助如何利用many2many字段在视图中进行分组

求助如何利用many2many字段在视图中进行分组

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

    我知道many2one可以用group_by直接分组,但是如何用many2many啊,比如我这个对象的不同实例的many2many对象有部分相同的内容,我想利用这个相同的内容将这些实例分组显示,该怎么解决啊,求大神给点思路。

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

      看 web/static/src/js/views/search_inputs.js,

      core.search_widgets_registry
      .add('char', CharField)
      .add('text', CharField)
      .add('html', CharField)
      .add('boolean', BooleanField)
      .add('integer', IntegerField)
      .add('id', IntegerField)
      .add('float', FloatField)
      .add('monetary', FloatField)
      .add('selection', SelectionField)
      .add('datetime', DateTimeField)
      .add('date', DateField)
      .add('many2one', ManyToOneField)
      .add('many2many', CharField)
      .add('one2many', CharField);

      many2many 搜索用的和 Char 一样都是:CharField,

      具体的 Group by 步骤去跟踪 js 里面 FilterGroup 相关代码了

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

        还有种影响性能的简单做法,

        你做个计算的字符串字段,

        根据many2many字段的值动态计算字符串的值,

        然后按照这个字符串分组

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

          @siyuan 您好,多谢回复。我现在想的是比如这个many2many字段是names,现在有三个包含names字段的对象A、B、C,A的names是["john","mike"],B的names字段是["john"],C的names字段是["mike"],我想要根据names里面相同的部分进行分组,分成john一组包含A和B,再分成mike一组包含A和C,这样的话该怎么解决呢?求指教

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

            @sirsir233

            改 web/static/src/js/views/search_inputs.js 里面的分组逻辑,

            具体哪部分要你自己跟js 代码了

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

              @sirsir233 另外你这个需求可能还涉及到框架上tree显示的修改了,

              目前的tree view上应该不会显示多条相同的记录,

              你要同时显示AB 和 AC 还要去改 tree 的相关js代码了

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

                多谢,另外还想麻烦您一下,您知道如何重新弹窗的“X”也就是关闭按钮的方法吗;还有就是怎么在一个target为new的弹窗里返回另一个target为new的弹窗,我在python代码里返回视图,但是这个新弹窗直接覆盖了旧的弹窗,点击关闭按钮后两个一起消失了。

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

                  @sirsir233

                  大部分的js前端代码都在 web 模块里,

                  你可以跟踪js代码调查。

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

                    好的,多谢解答:folded_hands:

                    1 条回复 最后回复
                    0

                    • 登录

                    • 没有帐号? 注册

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