我在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
中的数据?
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
您有一份清单清单。 articles_list
中的每个元素只是数据库中的值列表;它没有“id”或“amount”等属性的任何知识。
正如Arpit在评论中所说,你应该使用Django模型而不是原始SQL。