djangoの使い方

本サイトはdjangoで作成しています。
djangoの使用方法についてまとめています。

1893 views

はじめに

djangoのコントローラーで2次元のリスト型のデータを作成してtemplatesに渡したときに、template側でどうやってアクセスするかについて調べました。

サンプルコード

サンプルコードを以下に記します。

controller.py(コントローラー側)

def index(request):
    book_list = []
        user = request.user
        book_records = Book.objects.filter(user=user)
        for record in records:
            access_count = get_access_count(record.id)
            book_list.append([record.title, access_count])
        data = {'book_list': book_list}
        render(request, "test.html", data)

test.html(テンプレート側)

    {% for book in book_list %}
        <p>タイトル:{{book.0}}</p>
        <p>{{book.1}}</p>
    {% endfor %}

解説

controller.pyの2行目のdata_listがtemplate側に渡すためのリスト型。
7行目で[本のタイトル,アクセス数]をリスト形式で本の数だけ追加しています。
つまり、リストは二次元のリストです。
それを8行目でbook_list変数をセットし、9行目でrenderに渡します。

test.htmlでは、book_listをfor文で回して表示します。
bookがリストに格納されているデータになります。このデータは0番目に本のタイトル、1番目に本のアクセス数が入っています。
2行目は本のタイトルを表示するため、bookの0番目の要素にアクセスする必要がありますが、0番目の要素にアクセスするには
book.0と指定します。
3行目は本のアクセス数を表示したいのでbookの1番目の要素にアクセスする必要があります。
1番目の要素にアクセスするには book.1と指定します。

うっかり book[0]book[1]と書いてしまいそうですが、これはdjangoの仕様で、ピリオドを指定してインデックスを指定する必要があります。

以上です。

Page 13 of 14.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

マッスル

自己紹介

本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626