【Django】datetimeと現在時間のデフォルト値設定
ToDoリストのようなアプリを作っておりますが、リストの登録の際、期限設定の入力を毎回手入力しないよう、期限の月のデフォルト値として現在の月を設定しようと考えました。
まずは現在の時間の取得ですが、Pythonの標準ライブラリである、datetimeモジュールをインポートし、現在の時刻を"date_string"として定義します。
import datetime
date_string = datetime.datetime.now() #現時刻の取得
date_string.year #現在の西暦年の取得
date_string.month #今月の取得
date_string.day #今日の日付取得
また、時間、分、秒も取得が可能です。
次にデフォルト値の設定ですが、こちらは先ほど取得した"date_string"から今月の値を取得しています。
アプリ名.models.py
import datetime
date_string = datetime.datetime.now()
class モデル名(models.Model):
year = models.IntegerField(verbose_name='目標期限(年)', default=date_string.year)
month = models.IntegerField(verbose_name='目標期限(月末)', default=date_string.month)
これで初期値として現在の時間を取得が可能となります。
初期状態でイメージは以下のようになります。