2016-05-20 7 views
-2

PostgresqlモデルでDateTimeFieldを使用しようとしています。私は設定でtrueにタイムゾーンを設定しているし、モデルフィールドは次のとおりです。Django DateTimeField default with timezone

pickupTime = models.DateTimeField(default=datetime.now()) 

しかし、私はPythonのmanage.pyを実行したときにエラーが発生した移行:

django.db.utils.ProgrammingError: cannot cast type time without time zone to timestamp with time zone 

私は別の試してみました

models.DateTimeField(default=timezone.now) 
models.DateTimeField(auto_now_add=True) 
models.DateTimeField(auto_now_add=True, auto_now=False) 

など、DateTimeFieldのデフォルト値のバリエーションは同じですが、エラーは依然として同じです。私は何が欠けていますか?

答えて

0

はこれを試してみてください:

pickupTime = models.DateTimeField(default=datetime.now) 

それは動作するはずです。

+0

素晴らしいです!事は、カッコを付けずにdatetime.nowを渡すことによって、レコードが追加されるたびに呼び出される実際の関数を渡しています。datetime.now()を渡すと、関数を評価し、戻り値を渡します。 –