質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

720閲覧

日付ループ python django

ruri.ruri

総合スコア0

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/11/15 07:49

編集2020/11/15 08:05

前提・実現したいこと

日 出社 退社
01(木) 09:00 15:30
02(金) 08:25 18:00
03(土) 09:45 18:45

djangoとpythonで勤怠管理システムを作っています。
日づけ欄の日にちと曜日をループさせたいのですが、方法がわかりません。

該当のソースコード

ソースコード
view.py

from django.shortcuts import render from django.http import HttpResponse from django.contrib.auth.decorators import login_required from .models import Attendance from datetime import datetime import datetime from django.utils import timezone import pytz @login_required def index(request): data = Attendance.objects.all() dt_now = datetime.datetime.now() if data.count() == 0 : params = { 'data':Attendance(), 'time':dt_now, } else : params = { 'data':data[0], 'time':dt_now, } return render(request,'app1/index.html', params) def attendance_time(request): data_all = Attendance.objects.all() data_exist = Attendance.objects.count() dt_now = datetime.datetime.now() if data_exist == 0 : print(dt_now.strftime('%Y年%m月%d日 %H:%M')) Attendance( attendance = dt_now, user = request.user).save() else : data_all = Attendance.objects.all() params = { 'data':data_all[0], 'time':dt_now, } return render(request,'app1/index.html',params) def out_time(request): data_all = Attendance.objects.all() data_exist = Attendance.objects.count() dt_now = datetime.datetime.now() if data_exist == 0 : params = { 'data':data_all[0], 'time':dt_now, } print("退勤しました") print(dt_now.strftime('%Y年%m月%d日 %H:%M')) Attendance.objects.filter(user=request.user).update(out=dt_now) return render(request,'app1/index.html',params) def list(request): dt = datetime.date(2020, 11, 1) for i in range(1,31): dt_work = dt + datetime.timedelta(days=i) params = { 'calender':dt_work.strftime('%d(%a)'), 'data_box':dt_work.strftime('%d(%a)'), } return render(request,'app1/list.html',params)

list.html

<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"/> <title>app1</title> <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/uikit@3.3.0/dist/css/uikit.min.css" /> <script src="https://cdn.jsdelivr.net/npm/uikit@3.3.0/dist/js/uikit.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/uikit@3.3.0/dist/js/uikit-icons.min.js"></script> <link rel="stylesheet" href="../../static/app1/css/style.css"> </head> <body> <div class="header uk-child-width-1-1@s uk-text-center" uk-grid> <div> <div class="uk-background-primary uk-light uk-padding uk-panel"> <p class="uk-h4">一覧表示</p> <p>{{ day }}</p> <p>{{ time|date:"Y/m" }}</p> <p>{{ time }}</p> <p>{{ year }}</p> <p>{{ repeat }}</p> </div> </div> </div> <table border="1" width="300" > <tr> <th>日</th> <th>出社</th> <th>退社</th> </tr> <tr> <td>{{ data_box }}</td> <td></td> <td></td> </tr> <tr> <td>{{ data_box }}</td> <td></td> <td></td> </tr> <tr> <td>{{ data_box }}</td> <td></td> <td></td> <!-- セルを横に2つ結合する --> </tr> </table> </body> </html>

試したこと

test.py

import datetime import locale locale.setlocale(locale.LC_TIME, 'ja_JP.UTF-8') for i in range(1,31): dt = datetime.date(2020, 11, 1) dt_work = dt + datetime.timedelta(days=i) print(dt_work.strftime('%d(%a)'))

上記test.pyでは日付と曜日のみをループ処理することができました。
実際にhtmlに表示するときに、どのようにコードを書けば良いかがわかりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/11/15 07:57

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
ruri.ruri

2020/11/15 08:07

ご指摘ありがとうございます。訂正いたしました。
guest

回答1

0

Djangoでカレンダーを作るシリーズ
Djangoで、月間カレンダー
この記事は参考になりますでしょうか。

投稿2020/11/23 06:15

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問