Django日期时间字段(使用sqlite数据库)返回unicode
我正在写一个小的Django应用,它从sqlite3数据库中显示一些简单的值。我的问题是,虽然有一个字段是日期时间类型,但在查询时我得到的是一个unicode值。这里是模型的相关部分:
class Totals(models.Model):
time = models.DateTimeField(primary_key=True, blank=False)
..
现在,比如说我在Django的命令行中输入 Totals.objects.all()[0].time
(当然,之前要导入Totals),我得到的结果是 u'2012-01-03 04:02:56.966'
。这正常吗?因为我在使用sqlite,还是说有什么问题?我不确定这是否相关,但由于我已经有了想用的数据库,所以模型是自动生成的。自动生成的过程中,自然把所有字段类型都当成了文本,所以我相应地进行了修正。
1 个回答
2
说实话,我没有遇到你说的那种情况(我得到的只是一个 datetime.datetime
对象),我用的是sqlite,而且我定义模型的方式和你在问题中提供的一模一样。
我猜可能是在自动生成模型的时候出了点问题,导致它们和数据库中的结构不太匹配。所以,我建议你检查一下这些模型生成的结构是否真的和数据库中的结构一致。
在我的情况下,我看到的情况如下:
$ python manage.py sql <appname>
...
CREATE TABLE "<appname>_totals" (
"time" datetime NOT NULL PRIMARY KEY
)
;
$ sqlite3 <database_filename>
.schema <app_name>_totals
CREATE TABLE "<app_name>_totals" (
"time" datetime NOT NULL PRIMARY KEY
);
注意:我用的是Ubuntu 11.10,python 2.7.2 和 django 1.3.0