2017-08-09 69 views
0

我在Django視圖中有一個SQL查詢並將結果存儲在一個變量中。據我所知,結果應該作爲一個列表存儲。Django:訪問模板中的列表屬性

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:我遠不是程序員。所以我不知道任何編程概念/語言。

任何幫助,高度讚賞。謝謝!

+0

請參閱:[我如何避免濫用標籤?](https://meta.stackoverflow.com/questions/354427/how-do-i-avoid-misusing-tags) – EJoshuaS

+1

我建議你不要'對此查詢使用原始的sql。這可以通過ORM輕鬆完成 –

+0

您確定您的article_list不爲空 –

回答

1

您有一個列表。 articles_list中的每個元素只是數據庫中值的列表;它沒有任何關於「id」或「amount」等屬性的知識。

正如Arpit在評論中所說的,您應該使用Django模型而不是原始SQL。

+0

謝謝你的答案。這就說得通了。但是,是否還有一種方法可以訪問article_list中的單個元素?我也很喜歡使用Django模型,但我真的很努力地用ORM加入表格。 – pap