Python 访问django中呈现函数中的参数

Python 访问django中呈现函数中的参数,python,django,render,Python,Django,Render,我正在使用Django,无法访问使用render方法传递的参数(args)。我得到错误:TemplateSyntaxError位于/app/。 无法分析“args['messages']”中的其余部分:“['messages']” 观点: def index(request): messages = ["This is message1", "This is message2"] args = {'messages': messages} return render(request, 'app

我正在使用Django,无法访问使用render方法传递的参数(args)。我得到错误:TemplateSyntaxError位于/app/。 无法分析“args['messages']”中的其余部分:“['messages']”

观点:

def index(request):
messages = ["This is message1", "This is message2"]
args = {'messages': messages}

return render(request, 'app/index.html', args)
索引html文件:

{% for message in args['messages'] %}

<div class="live_message">
    <p>{{ message }}</p>
</div>
{% endfor %}
{%用于args['messages']%中的消息
{{message}}

{%endfor%}
出了什么问题以及如何修复它?

您所称的“args”,Django称之为“context”

您不需要将上下文项引用为字典键。因此,要使模板标记正常工作,只需将其改写如下:


{%for messages%}

我会被诅咒的,它确实有效。但为什么它能起作用?Django是否在render函数中将字典转换为多个列表?我会在几分钟内接受你的答案,如果我能接受的话。模板标记是一种语言抽象,看起来像Python,但并不遵循它的所有约定,所以字典访问之类的事情并不像你期望的那样工作。上下文中的顶级键值对(“args”)仅由键引用。dev文档值得一读,这样您就可以知道在渲染过程中可以避免哪些问题: