Odoo 11去除货币符号同时保留千分符问题求助
解决Odoo 11中去除货币符号但保留千分分隔符的问题
嘿,我懂你这会儿的头疼——好不容易把千分分隔符改成了',结果想去掉货币符号的时候,连千分符也跟着没了,确实闹心!
你之前尝试把widget设为False的路子走不通,问题出在这:当禁用widget时,Odoo会直接输出原始数值,完全跳过系统设置的格式化规则(包括你刚改好的千分分隔符),所以自然看不到'了。
给你两个靠谱的解决方案,都能实现「显示不含货币符号但带千分符的价格」的需求:
方法一:用t-field-options精准控制显示
直接在字段选项里关闭货币符号显示,同时保留系统的格式化规则:
<span t-field="l.price_subtotal" t-field-options="{'display_currency': False}"/>
这里的display_currency: False会告诉Odoo不要渲染货币符号,但仍会应用你之前设置的千分分隔符和小数位数配置,刚好匹配你要的1'542这种效果。
方法二:手动调用formatLang函数格式化
如果需要更灵活的自定义空间,可以直接用Odoo模板内置的格式化函数:
<span t-esc="formatLang(l.price_subtotal, digits=get_digits('Account', 'currency'), currency_obj=False)"/>
formatLang是Odoo专门用来格式化数值的函数,会自动读取你设置的千分分隔符digits=get_digits('Account', 'currency')用来获取系统配置的货币小数位数currency_obj=False明确指定不显示货币符号
这两种方法都能完美解决你的问题,不用再担心千分符跟着货币符号一起消失啦!
内容的提问来源于stack exchange,提问作者rma_bjr
相关产品推荐
相关产品推荐

