Django项目模板渲染数据库产品列表仅显示标题如何解决
问题根源
视图函数传递给模板的上下文键名与模板中使用的变量名不匹配:
- 你在
index视图里给模板传的上下文键为product,对应产品查询集 - 模板中for循环遍历的变量为
products,找不到对应变量时Django模板默认静默跳过该循环,因此没有列表内容输出
解决方案(二选一即可)
- 修改视图上下文键名,和模板变量匹配
将index函数中的render语句调整为:
def index(request): products = Product.objects.all() return render(request, 'index.html', {'products': products})
- 修改模板循环变量,和视图传参键匹配
将HTML中的循环逻辑调整为:
<ul> {% for product in product %} <li>{{ product.name }}</li> {% endfor %} </ul>
额外注意点
你的new_products函数中使用了HttpResponse,需要确认视图文件顶部已经导入该类,否则访问对应路由会报错:
from django.http import HttpResponse
内容的提问来源于stack exchange,提问作者user5670057
相关产品推荐
相关产品推荐

