在模板中显示时,上下文变量为空。我在Django Shell中测试了查询,查询返回Shell中的数据。
views.py(https://github.com/josieh/playground-finder/blob/master/playgroundApp/views.py#L11-L26)
def Playground_List(request):
context = {
'playgrounds': Playground.object.all()
}
return render (request, "home.html", context)
Template home.html(https://github.com/josieh/playground-finder/blob/master/playgroundApp/templates/playgroundApp/home.html#L48-L54)
{% for playground in playgrounds %}
{# Each "player" is a player model object. #}
<tr>
<td> {{ playground.Name }}</td>
<td> {{ playground.Address }}</td>
</tr>
{% endfor %}
你能帮忙解释为什么游乐场的上下文变量是空的吗? 谢谢你的帮助!
答案 0 :(得分:0)
一个问题是它应该是Playground.objects.all()
。我想这可能是问题文本中的转录错误,因为如果它实际上是您在程序中编写的内容,则应该抛出AttributeError
。
您确定Playground
模型的属性被称为Name
和Address
,而不是name
和address
吗?大写属性名称是违反Python样式约定的。如果您错误地将这些名称大写,那么这确实会导致您的输出显示为空白。
在视图中注入print
语句/函数(取决于Python 2或3)以打印上下文和/或QuerySet可能有助于您调试问题。