Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python DateTime的数据错误?_Python_Django_Datetime_Django Models_Traceback - Fatal编程技术网

Python DateTime的数据错误?

Python DateTime的数据错误?,python,django,datetime,django-models,traceback,Python,Django,Datetime,Django Models,Traceback,我有一个Django模型(ReportCache),它将报告存储在SQL表中。其中一个字段是django.db.models.DateTimeField,用于存储上次更新报告的时间 出于某种原因,我得到了一个DataError:当试图将datetime保存到类型字符变量(20)时,值太长。datetime是由datetime.datetime.now()生成的,我尝试过使用和不使用django.utils.timezone.make_aware()都没有影响 完全回溯正在进行中 有没有关于我的日

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

出于某种原因,我得到了一个DataError:当试图将datetime保存到类型字符变量(20)时,值太长。datetime是由datetime.datetime.now()生成的,我尝试过使用和不使用django.utils.timezone.make_aware()都没有影响

完全回溯正在进行中


有没有关于我的日期随机过长的建议?

问题似乎不在于日期字段,而在于ReportKey字符串字段

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

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

date字段是以某种方式在数据库中创建为varchar列的,或者错误与另一个字段有关。回溯显示LastUpdate=datetime.datetime.now(),这是我的代码中有问题的一行,显然是多行语句的第一行,不是错误的原因;将变量设置为日期不会导致数据库插入。请显示该行的上下文:如果不太长,可能是整个runDetailedReport函数。因此我猜问题在于ReportKey字段,因为它至少有22个字符(取决于clientId的长度。另外请注意,您不应该直接调用
foo.\uu str\uu()
:do
str(foo)
或者更好地使用字符串插值。将ReportKey的长度更改为64已经解决了这个问题。您可以将其作为答案提交给我,这样我就可以接受它了。另外,我为什么要使用str()而不是str()?