Вместо этого используйте DateTimeField
(см. в этом разделе в документации). Преобразование в datetime.datetime
для вас обрабатывается Django автоматически.
A DateField
приводит к объекту datetime.date
и datetime.time
. Вы можете использовать replace
для объединения этих значений в обновленное date
:
>>> today = datetime.datetime.today()
>>> today
datetime.datetime(2012, 3, 31, 11, 6, 5, 182371)
>>> time = datetime.time(11, 30)
>>> today.replace(hour=time.hour, minute=time.minute)
datetime.datetime(2012, 3, 31, 11, 30, 5, 182371)
Обратите внимание, что полученное значение date
теперь равно 11.30. Также обратите внимание, что today
не изменяется, он просто вычисляет новую дату и время. Как видите, теперь вы должны выполнить слияние самостоятельно, поскольку оба значения хранятся в отдельных полях. Вот почему DateTimeField
гораздо лучший выбор, если у вас есть возможность изменять поля модели.