You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

继承POS模块模板标签添加自定义字段时触发内部服务器错误求指导

排查Odoo POS OrderWidget模板继承报错并添加自定义内容

嘿,我来帮你搞定这个问题!你触发内部服务器错误主要是因为模板继承的几个关键细节写错了,咱们一步步梳理修正:

错误原因分析

  • inherit_id 配置错误:你写的inherit_id="point_of_sale.template"完全不对,原模板的t-name是OrderWidget,正确的继承ID应该是point_of_sale.OrderWidget
  • XPath 路径错误:原模板里根本没有<form>标签,你写的//form/t/div/div/div/div/div/div/[@class='subentry']完全不符合原模板的结构,而且语法上多了个斜杠(/[@class='subentry']应该改成[@class='subentry'])

正确的继承代码

把你自定义模块gst_view.xml里的代码替换成下面这段:

<templates id="template" xml:space="preserve">
    <template id="custom_order_widget_extension" inherit_id="point_of_sale.OrderWidget">
        <!-- 定位到Taxes所在的subentry元素,在它后面插入自定义内容 -->
        <xpath expr="//div[@class='subentry']" position="after">
            <!-- 这里用和原模板一致的subentry类,保证样式统一 -->
            <div class='subentry'>
                <span class="label">GST: </span>
                <span class="value">0.00 €</span>
            </div>
            <!-- 也可以添加其他自定义内容,比如你原来写的h1 -->
            <!-- <h1>FOO 2</h1> -->
        </xpath>
    </template>
</templates>

额外注意事项

  1. 模块依赖配置:确保你的自定义模块的__manifest__.py里的depends列表包含point_of_sale,这样Odoo才会正确加载继承关系:
    'depends': ['base', 'point_of_sale'],
    
  2. 清除缓存:修改前端模板后,一定要升级自定义模块,并且清除浏览器缓存(或者用无痕模式打开POS),否则前端不会加载新的模板内容
  3. 样式统一:建议沿用原模板的subentry、label、value类,这样你的自定义内容会和原有的Total、Taxes样式保持一致,不会出现排版混乱

内容的提问来源于stack exchange,提问作者phanikumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:32:31