Django无法从Pizza模型获取数据渲染到HTML页面求助
Django模板无法渲染模型数据问题修复
问题现象
页面仅显示<h1>Our Pizzas</h1>内容,<ul>标签内无披萨名称列表。
现有代码
views.py
from django.shortcuts import render from .models import Pizza def index(request): pizzas = Pizza.objects.all() return render(request, 'menu/index.html', {'pizzas ': pizzas})
模板文件(menu/index.html)
<html lang="en"> <head> <meta charset="UTF-8"> <title>Our Pizzas</title> </head> <body> <h1>Our Pizzas</h1> <ul> {% for pizza in pizzas %} <li>{{pizza.name}}</li> {% endfor %} </ul> </body> </html>
问题根源
views.py中传递给模板的上下文字典里,键名是'pizzas '(末尾包含一个空格),但模板代码里遍历的变量是pizzas(无空格),两者不匹配导致模板无法读取到披萨数据,循环逻辑未执行。
修复步骤
修改views.py中的上下文字典,删除键名末尾的空格:
from django.shortcuts import render from .models import Pizza def index(request): pizzas = Pizza.objects.all() return render(request, 'menu/index.html', {'pizzas': pizzas})
修改后模板即可正确识别pizzas变量,遍历展示所有披萨的名称。
内容的提问来源于stack exchange,提问作者Sukriti Chawla
相关产品推荐
相关产品推荐

