Django: Ошибки при переключении DateTimeField в DateField

Я работаю над проектом с Django.

Я использовал DateTimeField(), когда впервые создал некоторую Модель. Я также создал сотни экземпляров. Затем я решил, что DateField подходит больше, и изменил его.

когда я migrate, он был перенесен хорошо без каких-либо предупреждающих сообщений.

Но когда я пытаюсь получить доступ к оригинальным экземплярам, сделанным с помощью DateTimeField, я получаю следующую ошибку.

invalid literal for int() with base 10: b'13 00:00:00'

Ошибка, по-видимому, возникла из-за того, что данные поля datetime остаются, несмотря на изменение формата.

Но я не знаю, как решить эту проблему, поскольку я получаю эту ошибку даже при попытке удалить существующие экземпляры.

Мне также интересно, почему появляется эта ошибка.

Перейдите в оболочку python manage.py. С помощью цикла for измените время даты каждого объекта на дату:

for x in MyModel.objects.all():
    x.date = x.date.date()
    x.save()

или если это не работает, и поле является nullable, то:

for x in MyModel.objects.all():
    x.date = None
    x.save()
Вернуться на верх