added a boolean field
is_customer = fields.Boolean('Is customer', readonly=True)
added a field to the view
CREATE VIEW crm_opportunity_report AS ( SELECT <...>omitted<...> rp.customer as is_customer FROM "crm_lead" c LEFT JOIN "res_partner" rp ON rp.id = c.partner_id <...>omitted<...> GROUP BY c.id, stage.name, is_customer
Undefined
的情况。尝试过这个:
COALESCE(rp.customer, FALSE) as is_customer
(在Group by中也是如此),但“Undefined”仍然存在。在Odoo报告中,我怎样才能使
Undefined
表示False
,以便出现“Undefined”时显示“False”?注意:当使用Firefox进行调试时,我可以观察到服务器从(jsonrpc)数据中返回了报告项目上的“is_customer: false”或“is_customer: true”。但是,那些在报告视图中具有“is_customer: false”的项目以某种方式被显示为“is_customer: Undefined”。
更新:
无意中,我发现了这个line。
if (value === false) return _t("Undefined");
这个逻辑背后可能的原因是什么:“如果值为false,则返回“未定义””?
有趣的是,我可以添加if (value === true) return _t("Whatever");
:)
partner_id
,而是未定义为False
? - traviswres_partner
。无论如何,这些应该都是False,因为COALESCE(rp.customer, FALSE)
。而且它们确实是这样的...但在报告中,false值显示为“未定义”。 - Developer Marius ŽilėnasCOALESCE(rp.customer, 'f')
替代吗?正如你所发现的,Odoo 会将False
翻译为“未定义”,但它应该将'f'
翻译为“False”,因为这是它在数据库中存储的方式。 - traviswfields.Char
用于is_customer
和CASE rp.customer WHEN TRUE THEN 't' WHEN FALSE THEN 'f' ELSE 'f' END as is_customer
,那么我会在报告中得到'f'和't'。但这不同,因为Char
不是Boolean
:/ :在Odoo筛选器中,使用fields.Char
的情况下将出现Char
的筛选器而不是Boolean
的筛选器。 - Developer Marius Žilėnas