Odoo 11:将数组传递给 qweb 模板
Odoo 11: Pass array to qweb template
我正在尝试将数组从我的控制器传递到 QWeb 模板,但无法实现遍历它...
--- 控制器 ---
return_projects = {}
for active_project in active_projects:
hours = 0
for analytic_line in active_project.line_ids:
hours += analytic_line.unit_amount
return_projects[active_project.id] = {
"name": active_project.display_name,
"hours": hours
}
return http.request.render('mymodule_briefing.crm_page', {
'projects': return_projects,
})
--- 模板 ---
<t t-foreach="projects" t-as="project">
<-- show project.name -->
<-- show project.hours-->
</t>
在循环中,project
是项目 id
,因此您需要使用它从 projects
获取项目数据(名称和时间)
示例:
<t t-foreach="projects" t-as="project_id">
<div>
<t t-esc="projects[project_id]['name']"/>
<t t-esc="projects[project_id]['hours']"/>
</div>
</t>
您可以使用项目记录呈现模板:
return odoo.http.request.render('mymodule_briefing.crm_page', {
'projects': active_projects,
})
并使用以下代码遍历记录并计算小时数:
<t t-foreach="projects" t-as="project">
<div>
<t t-esc="project.name"/>
<t t-esc="sum(line.unit_amount for line in project.line_ids)"/>
</div>
</t>
我正在尝试将数组从我的控制器传递到 QWeb 模板,但无法实现遍历它...
--- 控制器 ---
return_projects = {}
for active_project in active_projects:
hours = 0
for analytic_line in active_project.line_ids:
hours += analytic_line.unit_amount
return_projects[active_project.id] = {
"name": active_project.display_name,
"hours": hours
}
return http.request.render('mymodule_briefing.crm_page', {
'projects': return_projects,
})
--- 模板 ---
<t t-foreach="projects" t-as="project">
<-- show project.name -->
<-- show project.hours-->
</t>
在循环中,project
是项目 id
,因此您需要使用它从 projects
示例:
<t t-foreach="projects" t-as="project_id">
<div>
<t t-esc="projects[project_id]['name']"/>
<t t-esc="projects[project_id]['hours']"/>
</div>
</t>
您可以使用项目记录呈现模板:
return odoo.http.request.render('mymodule_briefing.crm_page', {
'projects': active_projects,
})
并使用以下代码遍历记录并计算小时数:
<t t-foreach="projects" t-as="project">
<div>
<t t-esc="project.name"/>
<t t-esc="sum(line.unit_amount for line in project.line_ids)"/>
</div>
</t>