如标题所述,我想在报告中获取选定的公司(在多公司数据库中),我知道它可以在 python 中使用:
select_companies = self.env['res.company'].browse(self._context.get('allowed_company_ids'))
但是在 qweb 中我没有 self
(记录),还有其他方法可以获取上下文吗?
注意:我会在t-if
中使用它们
Odoo v14
答案 0 :(得分:2)
在文档报告 (QWeb) 中,您通常会得到 doc
或 o
,它们代表您要打印/呈现的记录。这通常是(除非在极少数情况下)一个普通的 Odoo 记录集,其中包含您可以在 Odoo 的 python 业务逻辑代码中使用的所有内容。所以试试吧:
<span t-esc="o.env.context.get('allowed_company_ids', 'sorry nothing here')" />
这应该打印/呈现公司 ID 列表。如果这有效,您还可以在 t-if
和其他 QWeb 控件元素中使用它。
在商业智能报告(再次是 QWeb)中,这取决于报告的调用方式。在评论中提到了模板 account_reports.line_template
,它已经使用了 context.get()
。但这并不意味着这个上下文是正常的上下文。但值得一试。您必须深入研究报告 Python 代码,以找出上下文中存在的内容或如何操作它。