0

我已经被这个错误困扰了很长一段时间了,我只是不知道这意味着什么。当我尝试将对象保存到我的 mysql 数据库时会发生这种情况。有任何想法吗?

谢谢您的帮助!

4

6 回答 6

28

刚刚遇到同样的问题并解决了。我实例化了一个这样的表单:

data = {'date' : datetime.now} #this is the problem
form = MyForm(data)

该表单稍后保存,django 尝试在模型中设置“日期”。但是 datetime.now 显然是指一个函数而不是一个日期。我想做的是datetime.now()

也许这有助于将来遇到这个问题的任何人。

于 2011-07-04T10:31:03.907 回答
7

这可能意味着 Python 正在尝试执行需要某种数据类型(bool、string、int 等)的代码,但提供了另一种不正确的数据类型。

于 2010-11-29T19:06:27.533 回答
1

在我的情况下,当我使用“时间”库将日期字符串转换为日期时间对象时出现。我只是使用“datetime.strptime”而不是“time.strptime”并且问题消失了。

于 2015-08-04T21:43:39.650 回答
1

django 中的日期时间验证器在文件中:

/path/to/project/venv/lib/python2.7/site-packages/django/utils/dateparse.py

或在您当前的 python 解释器的站点包中。
看看那里以查看正则表达式。就我而言,解决它的方法是:

ended=datetime.fromtimestamp(time.time())
other=datetime.fromtimestamp(time.time())

# in the model:
ended = models.DateTimeField(blank=True, null=True) # or
other = models.DateTimeField(auto_now_add=False, blank=True)

两者都工作。

于 2018-05-17T02:41:59.550 回答
0

“过期”是这个字段

expiration = models.DateTimeField(default=7)

有错误的代码是这样的:

ex = timedelta(minutes=expiration)                      
authobj, created = cls.objects.update_or_create(                         
    operator=operator,                                                   
    defaults={'transport':transport,'token':cls.generate_key(40),'expiration':ex}
)                                                                        

它是通过这样设置来解决的(而不是timedelta,一个日期)

ex = datetime.now() + timedelta(minutes=expiration)                      
authobj, created = cls.objects.update_or_create(                         
    operator=operator,                                                   
    defaults={'transport':transport,'token':cls.generate_key(40),'expiration':ex}
)                                                                        
于 2017-06-30T13:31:53.630 回答
-1
str(yourvar)

我们可以转换 sting 你的变量。

于 2013-09-04T08:17:09.593 回答