2017-10-25 31 views
0

私は、クエリの値を取得しようとしています:私は私の神社コードでフラスコ:jinja2の集計と集計でグループにアクセスするにはどうすればいいですか?

total_sales = (Model.query 
       .with_entities(Model.dept_name, 
           sa.func.sum(Model.sales), 
           sa.func.count(Model.sales)) 
       .filter(Model.companyid == companyid) 
       .filter(Model.sales> 0) 
       .group_by(Model.companyid, Model.dept_name) 
       .all()) 

{% for item in total_sales %} 
      <tr> 
       <td>{{ item.dept_name}}</td> 
      </tr> 
      <tr> 
       <td>{{ item.sum }}</td> 
      </tr> 
      <tr> 
       <td>{{ item.count }}</td> 
      </tr> 
     {% endfor %} 

をDEPT_NAMEが現れるが、item.sumが表示されていないとitem.countが現れますas <built-in method count of result object at 0x000002DEA910D098>

I print(total_sales)私は、クエリの結果をタプルのリストとして見ることができます。私のjinjaファイルでこれにアクセスするにはどうすればいいですか?

答えて

2

関数結果にラベルを追加して、より明確にアクセスできるようにする必要があります。テンプレートでcountsumを使用しているので、それは次のようになるだろう:

sa.func.sum(Model.sales).label('sum'), 
sa.func.count(Model.sales).label('count') 
+0

私は、[1]私はサムにアクセスし、アイテム 'として数えることができることを把握することができた'と '項目[2]'それぞれ、しかし、あなたの例からラベルを追加し、 'item.sum'と' item.count'でアクセスすることができました。私もテーブルレイアウトを修正しました(私のコードではstackoverflowではなく)。 – spitfiredd

関連する問題