You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jinja2模板遍历API嵌套字典:循环不渲染问题排查

问题分析与解决

核心问题

模板循环未渲染的根源是模板变量传递错误,同时存在Request参数传递的低级错误,具体如下:

  • 员工列表传递错误:employees是列表类型查询结果,但你试图通过employees.employee获取数据——列表不存在employee属性,直接传employees即可。
  • 公司名称取值错误:如果company是数据库返回的结果列表(即使只有一条数据),company.company无法正确取值,需要取列表第一个元素的company字段。
  • Request对象传递错误:TemplateResponse需要传入函数参数里的实际request对象,而非Request类本身。

修正后的代码

@get("/{company_id}", response_class=PlainTextResponse)
async def generate_template(company_id: int, request: Request):
    company = <用于筛选Cat Inc. company_id的函数>
    employees = <用于查找company_id匹配Cat Inc.的员工的函数>

    return templates.TemplateResponse(
        "company.j2", 
        {
            "request": request,  # 传入实际请求对象
            "company": company[0].company,  # 从列表中取第一个公司对象的名称
            "employees": employees  # 直接传入员工列表
        }
    )

额外验证点

  • 确认employees查询返回的是包含员工字典的列表(和你给出的API响应格式一致),确保Jinja2的for循环能正常遍历。
  • 如果company查询返回的是单个对象而非列表,直接用company.company即可,无需索引取值。

内容的提问来源于stack exchange,提问作者Wonseok Choi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:20:23