Django中的日期时间问题

时间:2009-05-13 14:54:17

标签: python django datetime postgresql

我正在尝试添加一个人的日期时间对象。每当出生年份少于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)

每当我尝试添加1929年出生的人的天生datetime对象然后尝试阅读它时,它就会失败。

让我重新假设数据插入工作正常,但在读取期间失败。我假设在DB内部出现问题。

我做了一系列测试,并且每当我添加1940年或之前出生的人时,我都知道它失败了。它给出了DataError: unable to parse time

我正在使用PostgreSQL。

任何形式的帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:6)

我可以在PostgreSQL docs找到我唯一能想到的东西。我的猜测是Django将你的日期存储在“重新定时”字段中,这个字段只能追溯到68年。我的计算器验证了2009-68 == 1941,这看起来非常接近您报告的内容。

我建议通过运行以下命令来查看表的架构:

$ python manage.py sql appname

我怀疑,查看有问题的日期字段是否为“reltime”字段。如果是这种情况,我不知道如何将其更改为更具竞争力的领域,而不会搞砸一切。