Метод save() в модели Django получает строку вместо объекта даты

В настоящее время мы переводим Django с версии 1.11.29 на версию 3.2.15 и заметили одну вещь: DateFields в методе save() в моделях теперь строка, а не объект Date, как раньше.

это одно из полей, которое теперь является строкой

service_date_starts = models.DateField(blank=True, null=True,)

ожидается ли это? Или есть способ, чтобы DateFields в save() по-прежнему был объектом без парсинга?

Это может помочь вам.

Django DateTimeField отображается как строка

Я дал вам некоторую информацию из этого вопроса.

Базы данных не хранят типы данных Python, поэтому django ORM выполняет некоторые преобразования и приведение, чтобы вернуть вам эквивалентный тип Python.

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

Если объект обновляется, то значением будет дата время если вы не обновляли это поле.

Вернуться на верх