gpt4 book ai didi

javascript - Odoo-9,我的小部件在 QWeb View 中不起作用

转载 作者:行者123 更新时间:2023-12-02 13:47:50 24 4
gpt4 key购买 nike

我在 Odoo 9 中制作了一个小部件,用于在网站 View 中剪切产品描述。在产品表单 View 和网站产品 View 中添加了 widget="short_desc"。我的意思是这样的:

<span t-field="product.description"/> <!-- full description -->
<span t-field="product.description" t-field-options='{"widget": "short_desc"}'/> <!-- short description -->
<span t-field="product.description" widget="short_desc"/> <!-- also tried this syntax -->

我发现这个答案很有帮助:Odoo 9. How to override form widgets? ,但它仅适用于产品形式,不适用于网站

所以,我有一个 widgets.js:

odoo.define('wsup.widgets', function (require) {
'use strict';

var core = require('web.core');
var FieldChar = core.form_widget_registry.get('char');

var ShortDescriptionView = FieldChar.extend({
render_value: function() {
console.log('hey, im working!');
this.$el.html('<span>Ok, widget really works</span>');
},
});

core.form_widget_registry.add('short_desc', ShortDescriptionView);
});

当我转到销售 -> 产品并打开任何产品时,我可以看到“好吧,小部件确实有效”而不是其描述,但是当我转到/shop时code> 页面 — 产品描述仍然没有变化,JS 控制台中也没有任何内容。

这是我的网站产品 XML View 的一部分(除了简短的描述部分外,它的效果很好):

<div class="product-preview oe_website_sale">
<div class="product-preview__image">
<a t-attf-href="/shop/product/{{ item.id }}">
<span itemprop="image" t-field="item.image" t-field-options='{"widget": "image"}' t-att-alt="item.name"/>
</a>
</div>
<div class="product-preview__info text-center">
<div class="product-preview__info__title">
<h2><a t-attf-href="/shop/product/{{ item.id }}"><span t-field="item.name"/></a></h2>
</div>
<div class="product-preview__info__description">
<p><span t-field="item.description" t-field-options='{"widget": "short_desc"}'/></p>
</div>
</div>
</div>

为什么它在 /shop 页面上不起作用?我忘记做什么了?谢谢。

最佳答案

据我了解您的评论,您的要求是显示少量描述,而不是显示大量描述。所以,我认为这个需求不需要创建一个widget就可以轻松实现。

假设您有以下内容作为描述:

<小时/>

两个比一个好。

与许多小型耳机不同,Apple 入耳式耳机的每个耳机都包含两个独立的高性能驱动器 - 一个用于处理低音和中音的低音扬声器,一个用于处理高频音频的高音扬声器。这些专用驱动器有助于确保整个声波频谱中的准确、细致的声音。结果:您沉浸在音乐中并听到您从未知道的细节。即使在听一首老歌时,您也可能会感觉像是第一次听到。

从这么多的描述中,如果您想显示少量的描述或单词数,那么您可以简单地使用下面的代码。

<span t-if="product.website_description and len(product.website_description) &gt; 500">
<t t-set="description" t-value="product.website_description[:500] and product.website_description[:500].replace('+', '\n')+'...'"/>
<p class="text-muted ">
<t t-raw="description"/>
</p>
</span>

在上面的代码中,[:500] 将是要使用的单词数。

<小时/>

输出将是:

两个比一个好。

与许多小型耳机不同,Apple 入耳式耳机的每个耳机都包含两个独立的高性能驱动器 - 一个低音扬声器...

<小时/>

希望这段代码能对您有所帮助。谢谢。

关于javascript - Odoo-9,我的小部件在 QWeb View 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41240014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com