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

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

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

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

如何在继承的视图中有重复的field name的字段后添加新字段的方法


  • 管理员

    @KevinKong
    这文章写的干净漂亮,多谢帮我修了bug。 🙂

    这个invisible 的 supplier不知道是哪个模块加上去的。一个对象上的同样字段不应该在视图里出现两次的。





  • ;D校长过奖了,还得多谢校长指点啦

    我还有个问题想咨询一下,xpath 和 name 定位的方式有什么区别?哪个比较好呢?



  • name 一般能唯一定位的话,用name就可以了,xpath则可以精确定位,依据DOM规则


  • 管理员

    你其实已经发现了。
    用字段名定位的方法,对某种情况下是无法处理的。必须用xpath
    比如,要定位销售订单行上的name字段,用字段名定位就做不到了。
    因为销售订单(sale.order)上有name字段,在order的视图里同样有订单行(sale.order.line)的name字段, 这就必须用xpath来定位了。
    另外,xpath提供灵活定位方式可以通过相对路径定位到xml的任何一个节点,比如search view里的filter元素等等
    象上面的例子也可以用下面这些方法定位:

    <xpath expr="//field[@name='customer']/field[@name='supplier']" position="after">
    


  • learned a lot  & thanks a lot.



  • 报告校长,代码

    <xpath expr="//field[@name='customer']/field[@name='supplier']" position="after">
    


    还是行不通 :-\,好像customer跟supplier是并列的。

    我试了一下,这样是可以的:

    <br />xpath expr=&quot;//page[@string=&#039;Sales &amp;amp; Purchases&#039;]/group/group/field[@name=&#039;supplier&#039;]&quot; position=&quot;after&quot;&gt;<br />
    

  • 管理员

    不好意思,试试下面的:


    &lt;xpath expr=&quot;//field[@name=&#039;customer&#039;]/../field[@name=&#039;supplier&#039;]&quot; position=&quot;after&quot;&gt;
    


  • 试了,好用 😉



  • 高手论剑~~~~~~~~~~~~~~~~~~~~~~~~

    我来收门票~!!!



  • [quote author=digitalsatori link=topic=16281.msg27626#msg27626 date=1394788274]
    不好意思,试试下面的:


    &lt;xpath expr=&quot;//field[@name=&#039;customer&#039;]/../field[@name=&#039;supplier&#039;]&quot; position=&quot;after&quot;&gt;
    


    [/quote]

    求教一下吃个快餐,  这里的两个点 ..  怎么理解?



  • [quote author=ccdos link=topic=16281.msg27632#msg27632 date=1394885702]
    [quote author=digitalsatori link=topic=16281.msg27626#msg27626 date=1394788274]
    不好意思,试试下面的:


    &lt;xpath expr=&quot;//field[@name=&#039;customer&#039;]/../field[@name=&#039;supplier&#039;]&quot; position=&quot;after&quot;&gt;
    


    [/quote]

    求教一下吃个快餐,  这里的两个点 ..  怎么理解?
    [/quote]

    个人感觉应该跟linux中的cd ..差不多意思,先找到customer的父节点,然后在该父节点下找supplier。



  • 明知道是两个,可以直接找第二个(或者叫最后一个的)

    http://shine-it.net/index.php?topic=14508.0



  • [quote author=Jeff link=topic=16281.msg27647#msg27647 date=1395063648]
    明知道是两个,可以直接找第二个(或者叫最后一个的)
    <br / http://shine-it.net/index.php?topic=14508.0 br />[/quote]

    谢谢Jeff大神分享,有学了一招。