1. ホーム
  2. python

[解決済み] Django DateField のデフォルトオプション

2023-04-06 23:13:12

質問

日付と時刻のフィールドを持つモデルを持っています。

date = models.DateField(_("Date"), default=datetime.now())

ビルトインされたdjangoの管理画面でアプリを確認すると DateField には時刻も付加されているので、保存しようとするとエラーが返ってきます。デフォルトを日付だけにするにはどうしたらいいのでしょうか( datetime.today() もうまくいきません)

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

このため、あなたは を常にインポートする必要があります。 datetime モジュールをインポートする必要があります。 import datetime よりも、むしろ datetime クラスではなく、そのモジュール内の from datetime import datetime .

もう一つの間違いは、実際に関数をデフォルトで呼び出していることで、その際に () . これは、すべてのモデルが日付 を取得し、クラスが最初に定義されたときに - ということで、Apacheを再起動せずに何日も何週間もサーバーが稼働している場合、すべての要素は同じ最初の日付を取得します。

ですから、フィールドは

import datetime
date = models.DateField(_("Date"), default=datetime.date.today)