Django DateTimeField с auto_now_add запрашивает значение по умолчанию - PullRequest
0 голосов
/ 26 мая 2019

У меня есть это поле в моей модели created_at = models.DateTimeField( auto_now_add = True )

Когда я пытаюсь выполнить миграцию, я получаю сообщение об ошибке:

You are trying to add the field 'created_at' with 'auto_now_add=True' to user wi
thout 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

Я попытался установить значение по умолчанию, но он говорит, что default и auto_now_add являются взаимоисключающими. Конечно, я мог бы просто использовать default без auto_now_add, но я хочу знать, почему появляется эта ошибка. Я что-то пропустил?

1 Ответ

1 голос
/ 26 мая 2019

У вас уже есть несколько строк без значения created_at. Но когда вы добавили следующее поле и запустили миграцию

created_at = models.DateTimeField( auto_now_add = True)

Ожидается, что существующая строка имеет значение created_at. Итак, он предупреждает вас во время миграций.

Чтобы решить эту проблему. Вы можете выбрать 1-й вариант, который говорит Provide a one-off default now (will be set on all existing rows). При выборе 1-го варианта вы запрашиваете стоимость. Здесь вы можете ввести timezone.now(). Он заполнит существующие строки текущей отметкой времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...