odoo - 看板视图继承与 QCode
问题描述
我正在尝试自定义 res.partner 上的看板视图
我想列出与联系人关联的所有 category_id而不使用
<field name="category_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create_edit': True}" />
我尝试使用 Qwep t-foreach 循环但不起作用,为什么?
<li t-foreach="record.category_id" t-as="item">
<t t-esc="item_value"/>
</li>
这个印刷品
many2many
false
false
[object Object]
false
false
res.users
false
true
false
true
Venditore
[object Object]
7,6
2record
我需要打印 res.partner.category 的名称
同时我需要在每个看板框内创建一个类,其名称为每个 category_id 之类的
<div class="oe_kanban_details category_1 category_2">
...
谢谢
解决方案
您正在循环记录category_id
属性。你得到这个结果是因为你使用了特殊变量$as_value,这些是以下属性的实际值。
type
change_default
company_dependent
context
depends
domain
manual
readonly
relation
required
searchable
sortable
store
string
views
raw_value
value
raw_value包含记录集,值是显示记录数的字符串。ids
您可以尝试覆盖看板记录 qweb 上下文以从对象获取category_id
数据。[{'color':, 'display_name':, 'id': }, ...]
recordData
例子
var KanbanRecord = require('web.KanbanRecord');
KanbanRecord.include({
_get_M2M_data: function (field) {
var categories = [];
if (field in this.recordData && this.recordData[field].data) {
categories = this.recordData.category_id.data;
}
return categories;
},
_setState: function (recordState) {
var self = this;
this._super(recordState);
self.qweb_context['get_m2m_data'] = self._get_M2M_data.bind(self);
},
});
然后在看板视图中使用它,如下所示:
<t t-foreach="get_m2m_data('category_id')" t-as="category_data">
<t t-esc="category_data.data['display_name']"/>
</t>
使用 field 标签时,使用以下代码可以得到类似的结果:
<div class="o_kanban_tags_section oe_kanban_partner_categories">
<span class="oe_kanban_list_many2many">
<div class="o_field_many2manytags o_field_widget o_kanban_tags">
<t t-foreach="get_m2m_data('category_id')" t-as="category_data">
<span t-att-class="'o_tag o_tag_color_'+ category_data.data['color']"><span></span><t t-esc="category_data.data['display_name']"/>
</span>
</t>
</div>
</span>
</div>
推荐阅读
- php - 为什么我的 php echo 不能使用 jquery 工作?如果执行了不正确的密码或凭据部分,login2.php 文件将加载消息
- android - 使用 Android AOSP 工具链构建任何开源软件
- html - HTML CSS 看不到元素 OpenSeadragon 查看器
- python - 用 discord.py 制作一个计时器
- node.js - req.check 在 express-validator 中不起作用?
- c++ - co_await 之后当前处理的异常是什么?
- html - Flask - 来自数据库的数据无法在 HTML 上正确呈现 - 段落之间需要空格
- python - Scipy solve_ivp没有给出预期的解决方案
- javascript - JS Regex - 将逗号内的所有内容与关键字匹配
- python - 如何确定一组区间是否可以覆盖某个成本以下的区域?