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

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

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

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

为何通过position="attributes"来定位修改字符串为中文时报错



  • 有时为了绕过翻译,直接通过模块中的string来固定术语,例如<br />                <field name="price_subtotal" string="小计"/><br />这样写入中文没问题<br /><br />而通过position="attributes"来定位修改字符串为中文时则报错<br />                <xpath expr="//field[@name='price_subtotal']" position="attributes"><br />                    <attribute name="string">小计</attribute><br />                </xpath><br /><br /><br />[code]验证字段 arch 时发生错误:Invalid XML for View Architecture!<br />Traceback (most recent call last):<br />  File "/opt/oe7/openerp/netsvc.py", line 292, in dispatch_rpc<br />    result = ExportService.getService(service_name).dispatch(method, params)<br />  File "/opt/oe7/openerp/service/web_services.py", line 626, in dispatch<br />    res = fn(db, uid, *params)<br />  File "/opt/oe7/openerp/osv/osv.py", line 188, in execute_kw<br />    return self.execute(db, uid, obj, method, *args, **kw or {})<br />  File "/opt/oe7/openerp/osv/osv.py", line 144, in wrapper<br />    raise except_osv(inst.name, inst.value)<br />except_osv: ('ValidateError', u'\u9a8c\u8bc1\u5b57\u6bb5 arch \u65f6\u53d1\u751f\u9519\u8bef\uff1aInvalid XML for View Architecture!')<br /><br />[/code]



  • 有时为了绕过翻译,直接通过模块中的string来固定术语,例如<br />                <field name="price_subtotal" string="小计"/><br />这样写入中文没问题<br /><br />而通过position="attributes"来定位修改字符串为中文时则报错<br />                <xpath expr="//field[@name='price_subtotal']" position="attributes"><br />                    <attribute name="string">小计</attribute><br />                </xpath><br /><br /><br />[code]验证字段 arch 时发生错误:Invalid XML for View Architecture!<br />Traceback (most recent call last):<br />  File "/opt/oe7/openerp/netsvc.py", line 292, in dispatch_rpc<br />    result = ExportService.getService(service_name).dispatch(method, params)<br />  File "/opt/oe7/openerp/service/web_services.py", line 626, in dispatch<br />    res = fn(db, uid, *params)<br />  File "/opt/oe7/openerp/osv/osv.py", line 188, in execute_kw<br />    return self.execute(db, uid, obj, method, *args, **kw or {})<br />  File "/opt/oe7/openerp/osv/osv.py", line 144, in wrapper<br />    raise except_osv(inst.name, inst.value)<br />except_osv: ('ValidateError', u'\u9a8c\u8bc1\u5b57\u6bb5 arch \u65f6\u53d1\u751f\u9519\u8bef\uff1aInvalid XML for View Architecture!')<br /><br />[/code]


  • 管理员

    LZ尝试直接replace,<attribute name="string">小计</attribute>里面可能不支持中文。



  • 用replace我担心的是:<br /><br />A 原视图<br />B 视图继承了A中的a字段<br />C 视图replace了A中的a字段(用同名a字段替换,仅增加了string)  ----------1<br />C 视图replace了A中的a字段(不再声明字段,即删除) ---------------------2<br />1 和 2 两种情况会不会对B造成影响?<br />也就是说 replace对其它相关视图破坏性如何?



  • <br />xml里面 这 不带引号的中文 都是不行的<br /><br />不知道 应该怎么说, 这里应该有个术语吧 <br />



  • [quote author=youring link=topic=14561.msg25164#msg25164 date=1384008672]<br />用replace我担心的是:<br /><br />A 原视图<br />B 视图继承了A中的a字段<br />C 视图replace了A中的a字段(用同名a字段替换,仅增加了string)  ----------1<br />C 视图replace了A中的a字段(不再声明字段,即删除) ---------------------2<br />1 和 2 两种情况会不会对B造成影响?<br />也就是说 replace对其它相关视图破坏性如何?<br />[/quote]<br />用replace可以这样做:<br />[code]<br /><field name="price" position="replace><br />  <field name="price" invisible="1"/><br />  <field name="new_price"/><br /></field><br />[/code]<br />如果字段重名,如你的情况,直接replace即可。<br />你说的第二种情况会对B造成影响,所以一般replace的字段,都会再写一次,并设置invisible=1<br /><br />


  • 管理员

    你上面的例子没有写上优先级<br />if B > C: 没有影响<br />if B < C: C2报错,因为C已经删除了字段a,B就会如果是以A的a字段为锚点,就会找不到a字段。<br /><br />在你不了解有哪些继承了这个view的时候当然replace存在更多风险,对于你上面说的情况还可以用[b]翻译[/b]来实现,:<br /><br />这里也说了下视图的叠加:[url=http://cn.openerp.cn/view_groups/]通过view实现字段的只读、隐藏操作[/url]



  • <br />如果B = C呢


  • 管理员

    [quote author=youring link=topic=14561.msg25238#msg25238 date=1384389049]<br /><br />如果B = C呢<br />[/quote]<br /><br />没测试过,不过应该会按照数据库id


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待