本サイトはdjangoで作成しています。
djangoの使用方法についてまとめています。
1893 views
djangoのコントローラーで2次元のリスト型のデータを作成してtemplatesに渡したときに、template側でどうやってアクセスするかについて調べました。
サンプルコードを以下に記します。
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)
{% 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/