3
私はテーブルEvents
を持っていて、フィールドはdate
です。Django - テンプレート内の特定のフィールドによるクエリーセットのグループ化
私はテンプレートでイベントをプリントアウトしたいのですが、日付ごと別々のdivを使用して、例えば:
<div class="content">
<h1>December 30th</h1>
<!-- div for Event 1 from December 30th -->
<!-- div for Event 2 from December 30th -->
</div>
<div class="content">
<h1>December 31st</h1>
<!-- div for Event 1 from December 31st -->
<!-- div for Event 2 from December 31st -->
<!-- div for Event 3 from December 31st -->
</div>
私はこれをどのように行うのですか?
私の現在の解決策は、日付をキーとして辞書にEventオブジェクトを配置することです。これには順序問題があり、控えめで非効率的です。
ビュー:
events = Event.objects.select_related().all()
events_dict={}
for event in events:
date=event.date.strftime('%d %B %Y')
if date in events_dict:
events_dict[date].append(event)
else:
events_dict[date] = [event]
テンプレート:
{% for date, events in events_dict.items %}
<div class="content">
<h1>{{date}}</h1>
{% for event in events %}
{% include "partials/event.html" %}
{% endfor %}
</div>
{% endfor %}
[regroup](https://docs.djangoproject.com/ja/1.3/ref/templates/builtins/#regroup)タグを試しましたか? – demalexx
@ race1いいえ私はなかったし、それは私が探していたものです。ありがとうございました。あなたが回答を投稿した場合、私はそれを受け入れるよ – bcoughlan
ありがとう、しかしそれは別の良い答えがあります:) – demalexx