モデルから作成したデータをソートして表示する必要があるメソッドがあります。順序付きセットをテンプレートに渡そうとしています。メソッドは次のとおりです。ソートされたリスト(辞書のリスト)をDjango 1.6テンプレートに渡す方法
def club_team_results(request, team_id):
"""Display detailed information for a specific team, including a list of results by event."""
team = Team.objects.get(pk=team_id)
team_events_list = EventDivisionTeam.objects.filter(team=team.id).order_by('division__start_date')
results={}
# Each match result is listed once, this team can be either of team or opposing_team
for r in Result.objects.filter(team=team):
results[r.id] = {'opponent': r.opposing_team.name,
'outcome': r.outcome,
'scores': r.scores,
'phase': r.phase,
'match': r.match,
'event_division_id': r.division.id,
}
for r in Result.objects.filter(opposing_team=team):
results[r.id] = {'opponent': r.team.name,
'outcome': r.outcome,
'scores': r.scores,
'phase': r.phase,
'match': r.match,
'event_division_id': r.division.id,
}
context = {'team_events_list': team_events_list, 'team_results': results, 'team': team, }
return render(request, 'rank/club_team_results.html', context)
プライマリキー(r.id)でソートされた結果オブジェクトを渡したいと思います。
'team_results': results
コンテキストの割り当てで
'team_results': sorted(results.items())
で、私はそれを並べ替えるしようとすると、データはテンプレートに渡されていない:私は交換しようとしています。この時点でDjangoのバージョンをアップグレードすることはできません(今夏に行う予定です)ので、1.6(現在はPython 3.3とDjango 1.6を使用しています)がついています。どんな援助もありがとう!
次は、結果の一覧を表示するテンプレートのセクションです:私は、コンテキストの割り当て文の結果の並べ替え()メソッドを使用している場合
{% for usav_code, result in team_results.items %}
{% if result.event_division_id == event.division.id %}
<tr>
<td colspan="2"> </td>
<td class="alignleft">{{ result.phase }}</td>
<td class="alignleft">{{ result.match }}</td>
<td class="alignleft">{{ result.opponent }}</td>
<td class="alignleft">{{ result.outcome }}</td>
<td class="alignleft">{{ result.scores }}</td>
</tr>
{% endif %}
{% empty %}
<tr>
<td colspan="2"> </td>
<td colspan="5">No results to display.</td>
</tr>
{% endfor %}
、その後、テンプレート内の結果リストがヒット空のタグを表示し、「表示する結果がありません」と表示します。
key = lambda x:x [0]を追加する例を含めてsorted()を使用すると、リストの{%for%}イテレータの{%empty%}タグにヒットしました。私がソートしていない()場合、リストは正しく表示されますが、ソートされません。元の投稿のコードスニペットにテンプレートの適切なセクションを追加できるかどうかを確認します。 –
私はちょうどDjango 1.10のドキュメントを読んで、1.10でsorted()が "リストのリスト"を処理する機能を追加しました。これはおそらく私が抱えている問題に関連していますか?私はDjango 1.6です... –