模板只包含由上下文传递的数组的最后一个元素



我在Django 2.2上,试图通过HTML模板中的数组进行解析。但由于某种原因,只显示数组的最后一个元素。

这里是mydata,我们可以看出状态是str:的数组

QueryDict: {'managername': ['blabla'], 'plant': ['FR'], 'status': ['a', 'b', 'c']}

这存储在我通过上下文传递的一个变量中:

context = {
'data': mydata
}
return HttpResponse(template.render(context, whatever))

在HTML模板中,我这样做:

<label> {{ data.status }} </label>

当我进入HTML时,以下是显示的

c

是否缺少一些技巧来获得整个数组,而不仅仅是最后一个元素?

QueryDict是如何实现下标的:

QueryDict.__getitem__(key)

返回给定键的值如果密钥有多个值,则返回最后一个值。Raisesdjango.utils.datastructures.MultiValueDictKeyError(如果钥匙有(不存在。(这是Python标准KeyError的一个子类,因此您可以坚持抓KeyError。(

您可以在视图中调用.getlist()[Django-doc]:

context = {
'data': mydata,
'statuses': mydata.getlist('status')
}
return HttpResponse(template.render(context, whatever))

并且在模板中使用:

<label> {{statuses}} </label>

最新更新