質問: 標記に関し、質問致します。 models.py に、後からcreated_atというフィールドを加え、 ``` auto_now_add=True ``` としてフィールドを設定したのですが、 下記のところから何を入れれば先に進めるのかわからず止まりました。 ``` python manage.py makemigrations You are trying to add the field 'created_at' with 'auto_now_add=True' to resultreport without a default; the database needs something to populate existing rows. 1) Provide a one-off default now (will be set on all existing rows) 2) Quit, and let me add a default in models.py Select an option: 1 Please enter the default value now, as valid Python You can accept the default 'timezone.now' by pressing 'Enter' or you can provide another value. The datetime and django.utils.timezone modules are available, so you can do e.g. timezone.now Type 'exit' to exit this prompt [default: timezone.now] >>> ``` ◆試したこと 1、modelのフィールドに加えてみた。 ・default=datetime.now ・blank=True ・null=True 全部シリアライズができないと怒られた。 2、上のプロンプトに色々な値を入れてみた 何を入れてみてもstrだの、知らないだの怒られた。 公式ドキュメントを確認し、 [ DateField auto_now オブジェクトが保存される度に自動的に現在の日付をセットします。 auto_now_add オブジェクトが最初に作成されるとき、 自動的にフィールドに現在の日付をセットします。 ※auto_now と auto_now_add と default は排他的です。 同時に使用するとエラーが発生します。 TimeField auto_now 同上 auto_now_add 同上 DateTimeField auto_now 同上 auto_now_add 同上 ここまでは理解しましたが、エラーを乗り越えることが現状できず、、自分の理解では先に進まないと思ったので質問致します。(そもそもauto_now_addを使うべきではないのか?どうかも含めてわからないです。このようなとき、みなさんなら無視して他の解決方法で進めますか?) 宜しくお願い致します。
回答: プロンプトで先に進めれば解決になる感じですかね。であれば > > 2、上のプロンプトに色々な値を入れてみた > > 何を入れてみてもstrだの、知らないだの怒られた。 > > > プロンプトのメッセージのとおり、 `timezone.now` でよければそのままエンターキーを、何か他の値を入れたければその値を valid Python として入力してエンターキーを押せばよいかと思います。 > > そもそもauto_now_addを使うべきではないのか? > > > そんなことはありません。ご存知のとおり適切に使えばとても便利なものなので、必要に応じて使って問題ないかと思います。