传递给模板时上下文变量为空

时间:2014-04-14 03:42:03

标签: python django

在模板中显示时,上下文变量为空。我在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 %}

你能帮忙解释为什么游乐场的上下文变量是空的吗? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

一个问题是它应该是Playground.objects.all()。我想这可能是问题文本中的转录错误,因为如果它实际上是您在程序中编写的内容,则应该抛出AttributeError

您确定Playground模型的属性被称为NameAddress,而不是nameaddress吗?大写属性名称是违反Python样式约定的。如果您错误地将这些名称大写,那么这确实会导致您的输出显示为空白。

在视图中注入print语句/函数(取决于Python 2或3)以打印上下文和/或QuerySet可能有助于您调试问题。