在Django模板标记中使用上下文的for循环
我正在尝试查询所有的餐厅,并把它们展示给用户,但我无法让模板显示模型中的项目。
{% block content %}
<h1>Featured Restraunts</h1>
<ul>
{% for restaurant in restaurants %}
<li><h2>{{ restaurants.name }}</h2></li>
{% endfor %}
</ul>
{% endblock %}
this is what i get
Featured Restaurants
and this is my views.py
def view_restaurants(request):
restaurants = Restaurant.objects.all()
return render(request,'menu/restaurants.html',{"restaurants":"restaurants",},context_instance=RequestContext(request))
这是不是拼写错误?我只想看到一份餐厅的列表。
如果我去掉餐厅后面的 .name,我的浏览器就会显示:
餐厅
餐厅
餐厅
餐厅
餐厅
餐厅
餐厅
餐厅
餐厅
餐厅
餐厅
尽管实际上只有两个条目。
2 个回答
1
{"restaurants":"restaurants",}
看起来这就是你的问题。
1
你需要把restaurants
变量周围的引号去掉(逗号也不需要) -
return render(request,'menu/restaurants.html', {"restaurants": restaurants})
另外,render
这个函数不需要你设置context_instance
。