1. ホーム
  2. python

[解決済み] Django で現在の日付と現在の時刻をそれぞれ取得するには?

2023-05-12 19:52:35

質問

このクラスを使っていて、面白い場面に出くわしました。

class Company(models.Model):
    date = models.DateField()
    time = models.TimeField()

c = Company(date=datetime.datetime.now(), time=datetime.datetime.now()) 

Django が決めたのは DATETIME_INPUT_FORMATS の中で定義された フォーマット.py ファイルに定義されています。 これは理にかなっています。 datetime.now() を両方のフィールドに渡しているからです。

私は、Django を使って DATE_INPUT_FORMATSTIME_INPUT_FORMATS で現在の日付と現在時刻だけを渡すと、それぞれ

このようなものです。

c = Company(date=datetime.date.now(), time=datetime.time.now()) 

しかし、これは明らかに今がそのように存在しないので、例外を投げます。 これを達成するために別の方法はありますか?

どのように解決するのですか?

日付については datetime.date.today() または datetime.datetime.now().date() .

時間については datetime.datetime.now().time() .


しかし、そもそもなぜこれらを別々のフィールドにするのでしょうか。なぜ、1つの DateTimeField ?

を返すヘルパー関数をモデル上に定義することができます。 .date() または .time() のどちらか一方だけが必要な場合は、後ほど説明します。