6.

クラスベースビューでテンプレートに値を渡す方法

ページの作成
テンプレートを更新

ページの作成

親となるページを選択してください。

ページは必ず何かしらの親ページに紐づきます。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球

子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール

親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!

1. ビューでcontextを定義する

まず、ビューでテンプレートに渡す変数を定義します。クラスベースビューでは、get_context_dataメソッドをオーバーライドして、contextを定義します。

from django.views.generic import TemplateView

class SampleView(TemplateView):
    template_name = 'sample.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['title'] = 'Sample Title'
        context['description'] = 'This is a sample description.'
        return context

上記の例では、titleとdescriptionという変数を定義しています。

 

2. テンプレートでcontextを参照する

次に、テンプレートで定義したcontextを参照します。テンプレートでは、{{ }}で変数を囲んで参照します。

<!DOCTYPE html>
<html>
<head>
    <title>{{ title }}</title>
</head>
<body>
    <p>{{ description }}</p>
</body>
</html>

上記の例では、titleとdescriptionという変数を参照して、タイトルと本文を表示しています。

 

3. ビューでテンプレートに渡す値を増やす

ビューでテンプレートに渡す値を増やす場合は、get_context_dataメソッドで定義します。

from django.views.generic import TemplateView

class SampleView(TemplateView):
    template_name = 'sample.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['title'] = 'Sample Title'
        context['description'] = 'This is a sample description.'
        context['items'] = ['item1', 'item2', 'item3']
        return context

 

上記の例では、itemsという変数を定義して、リストを渡しています。

 

4. テンプレートで渡されたリストを表示する

テンプレートで渡されたリストを表示する場合は、forループを使用して順次表示します。

<!DOCTYPE html>
<html>
<head>
    <title>{{ title }}</title>
</head>
<body>
    <p>{{ description }}</p>
    <ul>
        {% for item in items %}
        <li>{{ item }}</li>
        {% endfor %}
    </ul>
</body>
</html>

以上がクラスベースビューからテンプレートに値を渡す方法になります。テンプレートの中身を適宜編集して、データを表示させることができます。

 

子ページ
子ページはありません
同階層のページ
  1. クラスベースビュー(主流)の作り方とviewの分割
  2. 関数ベースビューの作り方とviewの分割
  3. URLディスパッチャー(ルーティング処理)
  4. GETとPOSTパラメータ受け取り
  5. クラスベースビューでGET/POSTリクエストの受け取り方
  6. クラスベースビューでテンプレートに値を渡す方法
  7. ビューでリダイレクト
  8. cookieの値の設定と取得
  9. HTTPステータスコードの返し方

最近コメントのあったページ

最近の質問

コメント一覧

コメントがありません

ログインしなければコメント投稿はできません。