曜日を表示させる方法【一から順番に解説していきます】

djangoを使う中で、曜日を表示させる方法について説明していきます。

一から順番に説明していきますので、すでに分かっているところがあったら飛ばして下さい。
1.dateフィールドを作る
    ↓
1.データをhtmlファイルで表示する
    ↓
1.表示したデータを曜日にする

このステップで整理していきましょう。

dateフィールドを作る

まずはdateフィールドを作っていきます。

ベースプロジェクトを準備してください。

models.pyファイルに日付のフィールドを書いていきます。

[コード]

BASE/app/models.py
from django.db import models
class AppModel(models.Model):
    title = models.CharField(max_length=50)
    content = models.TextField()
    nowtime = models.DateField(auto_now=True) ← new!

nowtimeフィールドを作りました。
ここで作った日時のデータを元に、曜日を表示させていきましょう。
データをhtmlファイルで表示する

次に、nowtimeフィールドをhtmlファイルに表示していきましょう。

[コード]

-BASE/template/detail.html

これでサーバーを立ち上げ、管理画面で一つ新しいデータを追加し、localhost:8000/detail/1にアクセスをしてみましょう。

今回は、title:タイトル、content:内容、nowtime:デフォルト(データの投稿したタイミング)とします。

すると。localhost:8000/detail/1にはこのような表示がされます。

一番右に日時が表示されました。

ここから、この表示を曜日に変えていきましょう。
表示したデータを曜日にする

いよいよ本題の部分です。

表示したデータを曜日にしましょう。

日付のデータを曜日に変えるには、|(パイプ)を使います。

パイプは、パイプの左側のデータに右側のフォーマットでフィルターをかけて表示するときに使われます。

といってもこれではイメージがわきづらいですので、具体的なコードでみていきましょう。

[コード]

-BASE/template/detail.html
Friday ← new!

最後の行の部分に注目してください。

object.nowtimeの右側に、| date:"l"と書かれていることが分かります。
こうすることによって曜日を出力することができるのですが、その背景について違う例を使ってみていきましょう。
分かりやすい例で考える

date:"l"は少し難しい表現なので、まずは簡単な表現からみていきましょう。

例えば、このようなコードがあったとします。


[コード]


これは、タイトルを小文字で表現するという意味です。

object.titleというデータにlower(小文字にする)というフィルターをかけて出力をしています。

次に、少し違う表現をみていきましょう。


[コード]


truncatewordsというのは切り捨てるという意味です。

つまり、これはobject.contentというデータを、10文字で切り捨てるということを意味します。

ここで、truncatewordはフィルター、:10というのは引数という整理になります。

この例を見たうえで、date:"l"を見るとイメージがわきやすくなると思います。

このdate:"l"というのは、受け取ったデータを日付のフォーマットに変えて、さらにそれを曜日に変えるという指示をしているのです。

"l"は曜日に変えるという指示です。

この結果として、Fridayというのは、日付のデータを曜日に変えるという意味になるのです。

実際に出力してみましょう。

日付の部分がSaturdayになっていることが分かります。
曜日以外の指定方法

最後に、日付以外で表現する内容で主要なものを整理しましたので、参考にしてみてください。

一覧を確認したいかたは、djangoの公式サイトの組み込みタグとフィルタというページを参考にしてください。

~Django無料講義~のご案内


Code for Djangoが、4時間超の無料Django講義をはじめました
 
・本を出版したCode for Djangoの
 製作者が作ったサイトです。
 
・Code for Djangoの内容も、
 動画で詳しく解説しています。
 
・動画は順次ふやしていきますので、
 ただで学び続けることが可能です。
 
・Djangoの効率的なスキルアップに、
 是非お役立て下さい。

                                                                  Django講義はこちら


Created with