DateTime的DataError?

时间:2014-10-31 12:29:15

标签: python django datetime django-models traceback

我有一个Django模型(ReportCache),它将报告存储在SQL表中。其中一个字段是django.db.models.DateTimeField,用于存储上次更新报告的时间。

出于某种原因,我在尝试将日期时间保存到它们时,因为类型字符变化(20)而得到DataError:值太长。 datetime是由datetime.datetime.now()生成的,我尝试使用和不使用django.utils.timezone.make_aware(),没有任何影响。

完整追溯是https://gist.github.com/cyberjacob/2f1e61f83a6fbd5792b8

为什么我的约会对象太长了?

1 个答案:

答案 0 :(得分:1)

问题似乎不是日期字段,而是使用ReportKey字符串字段。

如上所述,在Python中直接调用foo.__str__()之类的双下划线方法并不是惯用的。您应该调用内置函数:str(foo)。更好的是使用字符串插值:

ReportKey = "DetailedReport.{}.{}.{}".format(year, month, clientId)