Python Django 入門トップページ


Django によるコメント掲示板の開発:目次

  1. プロジェクトの作成
  2. Git でコミット
  3. Web サーバを起動しておく
  4. Config
  5. Comments アプリケーションを作る
  6. アプリケーションを有効にする
  7. はじめてのビューを作成する
  8. モデルを作る
  9. マイグレーション
  10. テストデータの設定
  11. データベースからコメント一覧を取得して表示してみよう
  12. Bootstrap の導入
  13. コメントの詳細表示
  14. urls.pyの書き方
  15. HTML のテンプレート化
  16. コメントの新規投稿
  17. コメントの編集機能を追加する
  18. さらにテンプレート化
  19. モデル,マイグレーションファイル,フォームの関連
  20. 入力内容の検証(バリデーション)
  21. コメントを削除する
  22. 一覧を逆順にする
  23. ページネーション
  24. フラッシュメッセージ
  25. Static コンテンツの設置
  26. 更新や削除にもフラッシュメッセージを表示
  27. テストの自動化を実現しよう
  28. デバッグツールバーを使う
  29. generic モジュールを使わずにコメント一覧を取得する
  30. コメント一覧のページネーション
  31. 一覧の表示順序を制御する
  32. generic モジュールを使わずにコメントの詳細を表示する
  33. コメント詳細にページ送り機能を作成する
  34. generic モジュールを使わずにコメント登録機能を作成する
  35. generic モジュールを使わずにコメント編集機能を作成する
  36. generic モジュールを使わずにコメント削除機能を作成する

Django によるコメント掲示板の開発

一覧を逆順にする

ここまでで,一覧表示,詳細表示,新規投稿,更新,削除といった基本的な機能が実現できた.ここからは,より使い勝手が良くなるような調整を施していこう.

コメントの一覧表示画面では,これまで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')
django2022-00023

目次に戻る