2017-04-12 6 views
0

私はそれが私のテンプレートdjango ormで別にする方法は?

<table> 
     {% for bulanmaxs in cekbulan %} 
      <tr> 
       <td>{{ bulanmaxs.month }}</td> 
      </tr> 
     {% endfor %} 
    </table> 

ですが、それは明確な値に動作しませんでした、それはまだすべての日付を一覧表示する「月」

cekbulan = Transaksi.objects.filter(tanggal__range=["2016-07-01", "2017-06-30"], unit='03').extra(
    select={'month': "month(date)"}).distinct() 

を表示するには、このクエリからdistintを選択します私のデータベースから、それを解決する方法? PostgreSQLのオン

+0

注釈(ドキュメントの日付注釈)のドキュメントを参照してください。 –

+0

私はannotateが別の@AndreyShipilovのサポートではないと思う – Gusan

+0

distinct = trueをパラメータとして追加できます。 distinct()についても読んでください。おそらく理解に役立つでしょう。 –

答えて

1
ドキュメントから

https://docs.djangoproject.com/en/1.10/ref/models/querysets/#distinct

だけ、あなたはDISTINCTを適用する先のフィールドの名前を指定するために、位置引数(*フィールド)を渡すことができます。これは、SELECT DISTINCT ON SQLクエリに変換されます。違いは次のとおりです。通常のdistinct()呼び出しの場合、データベースは、どの行が異なるかを判断するときに各行の各フィールドを比較します。指定されたフィールド名を持つdistinct()呼び出しの場合、データベースは指定されたフィールド名のみを比較します。

テンプレートで別々の月のみを使用する場合は、月のみを指定してから別の操作を実行するように指定できます。

cekbulan = Transaksi.objects.filter(tanggal__range=["2016-07-01", "2017-06-30"], unit='03').extra(select={'month': "month(date)"}).values('month').distinct() 
+0

ありがとう@anupsabraham – Gusan