Python - 获取从views.py render()函数传递的模板中的所有变量

时间:2017-11-09 11:34:47

标签: python django templates view render

我的views.py中的代码


from django.shortcuts import render
def webapppage(request):
    parameter = {
    'key1':'hello',
    'key2':['hiiii','whats up','buddy']
    }
    return render(request, 'template2.html', parameter)

如何在模板文件中的(参数)单个变量中同时获取{{key1}}和{{key2}}?

template2.html中的代码


{% for c in parameter %}
    `{{c}}
{% endfor %}

我想输出


hello ['hiiii','whats up','buddy']

2 个答案:

答案 0 :(得分:0)

如果您想要输出,只需将模板替换为: {{parameter.key1}} {{parameter.key2}}

如果您想保留模板,请将上下文作为列表传递:

返回渲染(请求,'questapp / template2.html',{'参数':[v for v in                parameter.values()]})

如果您想传递字典,那么您可以尝试: return render(request,'questapp / template2.html',{'parameter':                                                   参数})

并更改模板:

{%for c参数.values%}     `{{C}}  {%endfor%}

答案 1 :(得分:0)

在我阅读您的要求时,您希望传递一本包含许多键和值的字典。 我们可能会做这样的事情。

在views.py

def webapppage(request):
    parameter = {
        'key1':'hello',
        'key2':['hiiii','whats up','buddy']
    }

    context = {
        "parameter" : parameter 
    } # The template will only contain one dictionary

    return render(request, 'template2.html', context=context)

在模板中

{% for key, value in parameter.items %}
    {% if key == 'key1' %}
        {{ value }}
    {% else %}
        {% for name in value %}
            {{ name }}
        {% endfor %}
    {% endif %}
{% endfor %}

现在,模板将能够在一个变量中获取所有值。