2017-08-09 14 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

私は、この問合せには、raw SQLを使用しないでください。これはORMで簡単に行うことができます –

+0

article_listが空でないことを確信しています –

答えて

1

リストのリストがあります。 articles_listの各要素は、データベースの値のリストに過ぎません。 "id"や "amount"のような属性についての知識はありません。

Arpitはこのコメントで、未加工のSQLではなくDjangoモデルを使用するべきだと述べています。

+0

あなたの答えをありがとう。それは理にかなっている。しかし、article_list内の単一の要素にアクセスする方法はまだありますか?私もDjangoモデルの使用が好きですが、ORMとテーブルを結合するのは本当に苦労しています。 – pap

関連する問題