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

    NameError: name ‘os’ is not definedが表示される

    NameError: name ‘os’ is not definedが表示される Djangoの開発を始める時に最初のstartappする前に以下のエラーが出る時があります。これは初期段階でse […]

    Posted on by press
    Django

    Dockerを使ってDjangoとPostgreSQL環境を構築(2)

    前回の内容が古くなってしまったので2021年版に更新します。 Dockerを使ってシンプルなDjangoとPostgreSQLの開発環境を構築する方法の2021年版です。以下の点が前回より変わった点です。・Volumeを […]

    Posted on by nobnov