Odoo 中文社区

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

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

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

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

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

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

    关于many2many字段domain的写法

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

      class demo_b1(osv.osv):
          _name="demo.b"
          _columns={
                    'name':fields.char(u'名称',size=40),
                    }
      demo_b1()
      class demo_a(osv.osv):
          _name="demo.a"
          _columns={
                    'name':fields.char(u'名称',size=40),
                    'demo_bs':fields.many2many('demo.b','a_b_relation','a_id','b_id','demo b'),
                    }
      demo_a()
      class demo_b(osv.osv):
          _inherit="demo.b"
          _columns={
                    'demo_as':fields.many2many('demo.a','a_b_relation','b_id','a_id','demo a'),
                    }
      demo_b()
      class demo_c(osv.osv):
          _name="demo.c"
          _columns={
                    'name':fields.char(u'名称',size=40),
                    'a_id':fields.many2one('demo.a','demo_a',required=True),
                    'b_id':fields.many2one('demo.b','demo_b',required=True),
                    }
      demo_c()
      定义demo_c的view,实现效果:选择demo_a后,选择demo_b时只展示与demo_a关联的demo_b
          <record model="ir.ui.view" id="demo_c_form">
                  <field name="name">demo c</field>
                  <field name="model">demo.c</field>
                  <field name="type">form</field>
                  <field name="arch" type="xml">
                      <form string="demo c">
                          <field name="a_id" widget="selection"  />
                          <field name="b_id" attrs="{'readonly':[('demo_a','=',False)]}" [color=red]domain="XXX"[/color] />
                       
                      </form>
                  </field>
              </record>

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

        很棒..... 建议给贴子加上一些 tag 以方便其它人检索到...

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

          呵呵,shelly给个解决方案啊

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

            你这样写模块安装的时候就会报错,报第四句找不到demo.b

            GoodERP -- Odoo China fork

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

              [quote author=wjfonhand link=topic=2577.msg8586#msg8586 date=1315201289]
              你这样写模块安装的时候就会报错,报第四句找不到demo.b
              [/quote]
              不好意思,没经过实际调试。现在我实际调试了一下,修改了上面的代码。请再过目 🙂

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

                [quote author=Eric link=topic=2577.msg8584#msg8584 date=1315185070]
                呵呵,shelly给个解决方案啊
                [/quote]

                你就发段代码. 我一直认为你在分享你的代码... 你要什么解决方案?

                你的问题是什么???

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

                  [quote author=mrshelly link=topic=2577.msg8597#msg8597 date=1315271327]
                  [quote author=Eric link=topic=2577.msg8584#msg8584 date=1315185070]
                  呵呵,shelly给个解决方案啊
                  [/quote]

                  你就发段代码. 我一直认为你在分享你的代码... 你要什么解决方案?

                  你的问题是什么???
                  [/quote]

                  问题是:在实现demo_c的form view时,如何达到这种效果:选择demo_a后,在选择demo_b时,只展示与demo_a关联的demo_b

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

                    [quote author=Eric link=topic=2577.msg8603#msg8603 date=1315312348]
                    [quote author=mrshelly link=topic=2577.msg8597#msg8597 date=1315271327]
                    [quote author=Eric link=topic=2577.msg8584#msg8584 date=1315185070]
                    呵呵,shelly给个解决方案啊
                    [/quote]

                    你就发段代码. 我一直认为你在分享你的代码... 你要什么解决方案?

                    你的问题是什么???
                    [/quote]

                    问题是:在实现demo_c的form view时,如何达到这种效果:选择demo_a后,在选择demo_b时,只展示与demo_a关联的demo_b
                    [/quote]


                    然后呢???

                    你遇到什么问题了?

                    上面的代码有错?
                    你不知 domain 怎么写??
                    你不晓得代码放哪里???
                    你不知道代码用什么办法弄到OE里????
                    你不知道 对象怎么定义?????
                    你不知道.............??????

                    你的问题是什么????

                    """
                    问题是:在实现demo_c的form view时,如何达到这种效果:选择demo_a后,在选择demo_b时,只展示与demo_a关联的demo_b
                    """

                    这似乎只是描述了你的需求. 如果你的问题是"如何达到"...

                    我给你一个最快速的解决方案..

                    花 RMB 600.00 /人/天 找BBS里的 Jeff 给你搞定....

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

                      我的问题就是“不知 domain 怎么写”

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

                                            <field name="a_id" widget="selection"  on_change="xxxxxA"/>
                                            <field name="b_id" attrs="{'readonly':[('a_id','=',False)]}" domain="[]" />


                        在 a_id 的 xxxxxA 事件中, 去设置 b_id 的 domain 为 [('demo_as', 'in', a_id值)]

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

                          直接将你的domain="XXX"替换为:

                          domain=&quot;[(&#039;demo_as&#039;,&#039;in&#039;, a_id)]&quot;
                          

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

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

                            的确好用!这种写法在文档中没找到呢,还是不够熟悉啊

                            1 条回复 最后回复 回复 引用 0
                            • First post
                              Last post