Navigation

Related Articles

Back to Latest Articles

Djangoのテンプレートにrangeを渡す


press
Djangoのテンプレートにrangeを渡す

Djangoのテンプレートに範囲を渡す方法です。
指定した月の全日数を表示したいときや日毎に処理をして表示させたいときなどにrangeに範囲を入れてテンプレートに渡せます。

views.py

from django.shortcuts import render
import calendar
import datetime

def test_detail(request):
    now = datetime.date.today()
    set_month = calendar.monthrange(now.year, now.month)
    return render(request, 'index.html', {'loop_range': range(set_month[1])})

現在の年と月を指定して総日数を取得してrangeに指定します。set_monthの[1]は日付を指定しており[0]にすると月を指定します。

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Loop Mumber</title>
</head>
<body>
<div>
{% for i in loop_range %}
    {{ i }}
{% endfor %}
</div>
</body>
</html>

views.pyから受け取った範囲をループで1つづ生成して表示します。

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 

表示結果
0から始まるのでその月の最終が31日だった時は30日までの表示になります。


当ブログは群馬県でPython / Djangoを中心にウェブアプリケーションを開発している株式会社ファントムが運営しています。

株式会社ファントムへのお問い合わせ




    Show Comments (0)

    Comments

    Related Articles

    Django

    ダウンロードするファイルの文字コードを動的に変更

    ダウンロードするファイルの文字コードを動的に変更 ウェブアプリケーションの中でCSVやテキストファイルをダウンロードさせた時に文字化けが発生する事があります。使用する文字コードが決まっていれば予め固定してしまう事で文字化 […]

    Posted on by press
    Django

    That port is already in use.が表示された時の対処法

    Djangoでrunserverコマンドを使って開発用サーバーを起動した時にError: That port is already in use.が表示された時の対処法です。 Error: That port is al […]

    Posted on by press