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

如何在Django模板中展示列表?解决上下文类型错误问题

解决Django上下文错误及模板变量匹配问题

这个错误的原因很明确:你传给render函数的上下文参数不是字典,而是一个集合,而Django要求上下文必须是字典类型。同时你的模板变量名和后端传递的变量名也不匹配,这两个问题共同导致了当前的错误。下面是具体的解决步骤:

1. 修正后端上下文传递格式

你现在的代码里写的是{'search_query'},这在Python中创建的是一个集合,而不是字典。正确的写法应该是用键值对的形式定义字典,键是模板中要使用的变量名,值是对应的Python变量。

因为你的模板里用的是suggest_search_query作为循环变量,所以后端需要把search_query列表以这个键名传递:

search_query = []
# ... 这里填充search_query的代码 ...
return render(request, 'query/list.html', {'suggest_search_query': search_query})

2. 确认模板变量与后端一致

模板里的循环代码是{% for c in suggest_search_query%},只要后端传递的字典键是suggest_search_query,这个循环就能正确遍历你的列表了。如果之后你想修改变量名,要确保前后端的名称完全一致。

额外检查

还要确认search_query列表在传递给模板前已经被正确填充了数据(比如通过数据库查询或者其他逻辑添加元素),不然模板循环会因为列表为空而没有任何输出。

内容的提问来源于stack exchange,提问作者Shounak Chatterjee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:16:47