Odoo 10:通过继承在模板中添加字段

Odoo 10 :Adding field in templates by inheritance


我想通过在 custom_module.
中继承它来在 addons/point_of_sale/static/src/xml 中添加 "default_code" 字段 但是在 Installing/Upgrading 我的自定义模块时得到这些 erros
这是我的代码:

<?xml version="1.0" encoding="UTF-8"?>
<templates id="pos_inh" xml:space="preserve">
    <t t-name="ProductRef" t-extends="Product">
       <t t-jquery='.product-name' t-operation='inside'>
          <span t-esc="product.default_code"/>
       </t>
    </t>
</templates>

这是我要添加 default_code 字段的代码:

<t t-name="Product">
    <span class='product' t-att-data-product-id="product.id">
        <div class="product-img">
            <img t-att-src='image_url' /> 
            <t t-if="!product.to_weight">
                <span class="price-tag">
                    <t t-esc="widget.format_currency(product.price,'Product Price')"/>
                </span>
            </t>
            <t t-if="product.to_weight">
                <span class="price-tag">
                    <t t-esc="widget.format_currency(product.price,'Product Price')+'/'+widget.pos.units_by_id[product.uom_id[0]].name"/>
                </span>
            </t>
        </div>
        <div class="product-name">
            <t t-esc="product.display_name"/>
        </div>
    </span>
</t>

你能帮帮我吗?非常感谢

请使用以下代码:

<?xml version="1.0" encoding="UTF-8"?>
<templates id="pos_inh" xml:space="preserve">
    <t t-name="ProductRef" t-extend="Product">
       <t t-jquery='.product-name' t-operation='replace'>
          <div class="product-name">
            <t t-esc="product.display_name"/>
            <span t-esc="product.default_code"/>
          </div>
       </t>
    </t>
</templates>

在 js 文件中也使用下面的内容

var models = require('point_of_sale.models');
models.load_fields("product.product", ['default_code']);

在 odoo/Apps 上进行了一些挖掘之后,我找到了一个执行类似操作的模块,因此我只需复制、粘贴和修改代码即可完成我需要的操作。所以,这里是代码:

<?xml version="1.0" encoding="UTF-8"?>

    <templates id="template" xml:space="preserve">
        <t t-extend="Product" name="ProductStockWidget">
            <t t-jquery="div.product-name" t-operation="append">
                <t t-if="product.default_code">
                    <br/>
                    [<t t-esc="product.default_code"/>]
                </t>
           </t>
       </t>

   </templates>

而 jquery 代码是:

odoo.define('pos_ref_articles', function (require) {

"use strict";

var module = require('point_of_sale.models');

var models = module.PosModel.prototype.models;

for (var i = 0; i < models.length; i++) {

    var model = models[i];

    if (model.model === 'product.product') {

        model.fields.push('default_code');

    }

}

});