重写views.py而不使用locals()

时间:2011-03-01 05:52:39

标签: python django views

我有以下模板:

<!DOCTYPE HTML PUBLIC "=//W3C//DTD HTML 4.01//EN">
<html land="en">
<head>
    <title>Some Meta Data</title>
</head>
<body>
    <ul>
        {% for key,values in meta %}
        <li> {{ key }}, {{ values }} </li>
        {% endfor %}
    </ul>
</body>

</html>

和相应的views.py:

def display_meta(request):
    meta = request.META.items()
    metadata = []
    for k,v in meta:
        key = k
        values = v 
    return render_to_response('meta.html', locals())

如何重新编写上述功能,使其不使用locals()

1 个答案:

答案 0 :(得分:5)

您的观点可以是:

def display_meta(request):
    meta = request.META.items()
    return render_to_response('meta.html', {"meta": meta})

由于您必须迭代元数据以生成模板,因此您不必在视图中执行此操作。另外,render_to_response的第二个参数可以是要添加到模板上下文中的键的字典。