ここまでで,一覧表示,詳細表示,新規投稿,更新,削除といった基本的な機能が実現できた.ここからは,より使い勝手が良くなるような調整を施していこう.
コメントの一覧表示画面では,これまでID順に古いコメントが先頭に表示される仕様となっていた.ここでは,一覧を新しい投稿順や更新順に変更してみよう.
とりあえず,views.py に1行追加して,created_at の順に並べ直してみよう.この場合,投稿順とIDが一致しているはずなので,表示順に変化はないはずである.
comments/views.py (抜粋)
class CommentIndexView(ListView):
model = Comment
queryset = Comment.objects.order_by('created_at')
次に,更新順に変更してみよう.updated_at 順にすると,最近更新されたコメントが最後に表示されているはずである.
comments/views.py (抜粋)
class CommentIndexView(ListView):
model = Comment
queryset = Comment.objects.order_by('updated_at')
最後に,これを逆順にしてみよう.'updated_at' の前に - をつけて '-updated_at' とすると良い.Fixtureで初期データを投入したときに,9個目のコメントは10個目の投稿の後に更新されたように設定したので,期待通りの順番に表示されていることがわかる.さらに,テストデータ投入後に投稿した「新規投稿」,その後に修正した「最初のコメント編集」のコメントが上位に表示されていることにも注意する.
comments/views.py (抜粋)
class CommentIndexView(ListView):
model = Comment
queryset = Comment.objects.order_by('-updated_at')