Django模型数据无法在模板显示:无报错但模型存有数据
Django模板无法渲染Product模型数据的解决方案
嘿,我一眼就发现问题所在了——你的视图代码里的上下文变量名多了一个空格,这直接导致模板里的object_list找不到对应的数据!
问题根源
看你views.py里的这段代码:
return render(request, 'index.html', {'object_list ': object_list})
注意字典的键object_list 末尾有个空格,但你在模板index.html里用的是没有空格的object_list。Django模板对不存在的变量默认会静默忽略(不会报错,也不输出内容),这就解释了为什么页面空白且没有错误日志。
修复步骤
只需要把视图里的上下文字典键的空格去掉即可:
def list_products(request): object_list = Product.objects.all() # 去掉键名末尾的空格 return render(request, 'index.html', {'object_list': object_list})
额外排查建议(以防后续遇到类似问题)
- 确认模型有数据:打开Django Shell运行
Product.objects.all(),检查是否返回非空的QuerySet - 模板语法检查:确保你的
{% for %}循环语法正确,另外可以在循环外加个测试文本(比如<p>测试内容</p>),验证模板是否被正确加载 - 视图映射验证:你的
urls.py已经把根路径指向了list_products视图,这部分是没问题的
内容的提问来源于stack exchange,提问作者Amer
相关产品推荐
相关产品推荐

