我正在尝试添加一个人的日期时间对象。每当出生年份少于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。
任何形式的帮助将不胜感激。感谢。
答案 0 :(得分:6)
我可以在PostgreSQL docs找到我唯一能想到的东西。我的猜测是Django将你的日期存储在“重新定时”字段中,这个字段只能追溯到68年。我的计算器验证了2009-68 == 1941,这看起来非常接近您报告的内容。
我建议通过运行以下命令来查看表的架构:
$ python manage.py sql appname
我怀疑,查看有问题的日期字段是否为“reltime”字段。如果是这种情况,我不知道如何将其更改为更具竞争力的领域,而不会搞砸一切。