Дата и время выпуска в Джанго - PullRequest
4 голосов
/ 13 мая 2009

Я пытаюсь добавить объект datetime человека. Всякий раз, когда год рождения меньше 1942 года, я получаю странную ошибку DataError: unable to parse time при чтении данных из БД.

class Person(models.Model):
    """A simple class to hold the person info
    """
    name = models.CharField(max_length=100)
    born = models.DateTimeField(blank=True, null=True)

Всякий раз, когда я пытаюсь добавить объект datetime, рожденный от человека, родившегося в 1929 году, и затем пытаюсь прочитать его, это не получается.

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

Я провел ряд тестов и узнал, что он терпит неудачу всякий раз, когда я добавляю человека, родившегося в 1940 году или раньше.

Я использую PostgreSQL.

Любая помощь будет оценена. Спасибо.

1 Ответ

6 голосов
/ 13 мая 2009

Единственное, что я могу придумать, можно найти в PostgreSQL документах . Я предполагаю, что Django хранит вашу дату в поле "reltime", которое может вернуться только через 68 лет. Мой калькулятор проверяет, что 2009-68 == 1941, что очень похоже на то, что вы сообщили.

Я бы порекомендовал просмотреть схему вашей таблицы, выполнив следующую команду:

$ python manage.py sql appname

Посмотрите, является ли рассматриваемое поле даты полем "reltime", как я подозреваю. Если это так, я не знаю, как изменить его на более совместимое поле, не испортив все.

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