使用Django消息框架发送列表

时间:2019-05-08 21:33:50

标签: django python-3.x

简而言之,我正在努力提取使用消息框架传递到模板的列表内容。

很长一段时间:我的Web应用程序具有导入交易功能,用户可以选择一个csv,然后将每条记录上传到数据库。对于失败的记录,我将它们存储为列表,以便可以在下一页上显示哪些事务未成功。每个交易都有多个字段,因此本质上是一个列表列表。

简单来说,我创建了一个'errorRecords'列表,然后将其循环并添加到消息框架中。

数据可以很好地进入模板,但是我正努力使用常规列表操作正确提取数据。

看过类似的传递dict和json的代码,但是类似的方法,仅使用列表似乎对我不起作用。

在视图中创建消息:

for item in errorRecords:
    messages.add_message(request, messages.WARNING, item)

然后问题出在模板阶段:

{% for message in messages %}
    <tr>
        <td>{{ message[0] }}</td>
        <td>{{ message[1] }}</td>
    </tr>
{% endfor %}

哪个出现以下错误: django.template.exceptions.TemplateSyntaxError:无法解析“ message [0]”中的其余部分:“ [0]”

我还尝试了message.message[0],它给出了类似的结果(django.template.exceptions.TemplateSyntaxError:无法解析“ message.message [0]”中的其余部分:“ [0]”)。 / p>

我知道数据在那里,因为如果我使用它...

{% for message in messages %}
    <tr>
         <td>{{ message.message }}</td>
    </tr>
{% endfor %}

...整个列表显示在表格行的第一个单元格中,所以我感到困惑,为什么message.message是一个列表,为什么我不能使用message.message[0]访问它的项目等

实际上,我要做的就是提取每个列表项(消息中的消息),然后提取每个项的字段并插入表格单元格中,这样我就得到了一个字段表。

1 个答案:

答案 0 :(得分:0)

在模板中,列表索引是用dot notation完成的,所以不是

{{ message[0] }}

尝试这样做

{{ message.0 }}