通过pwiz
我的MySQL数据库,我得到:peewee的DateField属性是无与MySQL数据库
class BaseModel(Model):
class Meta:
database = database
class Pub(BaseModel):
...
author = TextField(null=True)
...
publish_date = DateField(null=True)
...
然后,迭代entry in Pub.select()
时,entry.publish_date
总是None
,但数据库中的所有条目都设定日期(或至少一部分,如年,即像2016-00-00
这样的条目)。
(有一个related question但问题是不同的:它没有设置,因此该解决方案是auto_now_add
。)
这是为什么?也许formats
是错误的?如何解决这个问题?
如何调试?
一些调试:
我想这peewee
将使用pymsql
引擎盖下。于是,我就做这个简单的事情:
import pymysql
conn = pymysql.connect(...)
cur = conn.cursor()
cur.execute("SELECT publish_date FROM pub")
然后遍历row in cur
,我只会变得row == (None,)
。
当事先铸造价值char
,它的工作原理,也就是我得到的值作为一个字符串:
cur.execute("SELECT CAST(publish_date AS char) FROM pub")
,我认为这是一个错误了。我报告了here for peewee和here for pymysql。