Django:访问模板中的列表属性

时间:2017-08-09 14:11:45

标签: python html mysql django

我在Django视图中有一个SQL查询,并将结果存储在一个变量中。据我所知,结果应该存储为列表。

def assignments(request):

    cursor = connection.cursor()
    cursor.execute("SELECT o.article_id, o.amount, m.id, o.create_date, m.status FROM orders o, producers p, machines ma, matches m WHERE ma.producer_id=1 AND m.machine_id = ma.id AND m.order_id = o.id")
    articles = cursor.fetchall()

    context = {"article_list": articles}

    return render(request, 'assignments.html', context)

然后我想在我的模板中的表中逐行传输该数据。

{% block body %}
<div class="container">
    <table class="table">
        <thead>...</thead>
            <tbody>
              {% for articles in article_list %}
                <tr>
                  <td>{{ articles.article_id }}</td>
                  <td>{{ articles.amount }}</td>
                  <td>{{ articles.id}}</td>
                  <td>{{ articles.create_date }}</td>
                  <td>{{ articles.status }}</td>
                </tr>
              {% endfor %}
            </tbody>
    </table>
</div>

{% endblock %}

不幸的是,该表是空的,并未显示任何结果。 查询本身应该没问题。我在我的数据库工作台中测试了查询,它显示了正确的结果。

如何从模板中访问存储在变量articles中的数据?

PS:我不是一个程序员。所以我真的不懂任何编程概念/语言。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

您有一份清单清单。 articles_list中的每个元素只是数据库中的值列表;它没有“id”或“amount”等属性的任何知识。

正如Arpit在评论中所说,你应该使用Django模型而不是原始SQL。