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');
}
}
});
我想通过在 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');
}
}
});