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

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

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

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

关于many2many字段domain的写法



  • 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>



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



  • 呵呵,shelly给个解决方案啊



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



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



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

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

    你的问题是什么???



  • [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 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 给你搞定....



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



  •                     <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值)]


  • 管理员

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

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


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