1
Учитывая следующие Джанго модель:Создание модели Django с DateTimes из строк
from django.db import models
class TimeStamp(models.Model):
date = models.DateField()
Я был удивлен, обнаружив, что я могу передать в строках вместо datetime
объектов:
In [4]: ts = TimeStamp.objects.create(date="2001-12-31")
In [5]: ts.date
Out[5]: '2001-12-31'
In [6]: reloaded_ts = TimeStamp.objects.get(id=ts.id)
In [7]: reloaded_ts.date
Out[7]: datetime.date(2001, 12, 31)
Почему Django делаете это вместо ошибок в отношении типов? Есть ли документация для этого поведения? Какой формат времени он ожидает?
«Кортеж форматов, которые будут приниматься при вводе данных в поле даты и времени» - ах, так что это поле модели, а не поле формы ? Почему не 'ts.date'' datetime'? –
Исправьте, проверьте документы: https://docs.djangoproject.com/en/dev/ref/models/fields/#datefield. 'ts.date' не является' datetime', потому что вы объявили его как 'DateField'. Попробуйте 'DateTimeField' и посмотрим, что будет :) – matino
Извините, я не понял. Почему 'ts.date'' строка', а не 'date'? –