python - Django 日期时间字段(带有 sqlite 数据库)返回 unicode

标签 python django sqlite datetime

我正在编写一个小型 Django 应用程序,它显示来自 sqlite3 数据库的一些简单值。我的问题是,虽然其中一个字段是 DateTimeField,但在查询时我得到了该字段的 unicode 值。这是模型的相关部分:

class Totals(models.Model):
    time = models.DateTimeField(primary_key=True, blank=False)
    ..

现在,如果我输入 Totals.objects.all()[0].time在 Django shell 中(当然是在导入 Totals 之后),我得到 u'2012-01-03 04:02:56.966' .这可能是正常行为,因为我使用的是 sqlite,还是有什么问题?我不确定这是否相关,但我已经自动生成了模型,因为我已经有了想要使用的数据库。自动生成过程自然将所有字段类型扣除为文本,因此我相应地对其进行了修复。

最佳答案

值得一提的是,我没有使用 sqlite 得到这种行为(我只是得到一个 datetime.datetime 对象),并且我以与您在问题中提供的方式完全相同的方式定义了模型。

我的猜测是模型的自动生成过程中出现了一些问题,它们与数据库中的模式并不真正匹配。因此,我建议验证从这些模型生成的模式是否真正匹配。

就我而言,我看到的内容如下:

$ 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
);

注意:我还在使用带有 python 2.7.2 和 django 1.3.0 的 Ubuntu 11.10

关于python - Django 日期时间字段(带有 sqlite 数据库)返回 unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8737269/

相关文章:

python - python plot get_loc(self,key,method,tolerance)错误

python - 将平面列表中的 N 个元素迭代地分配给矩阵的每个成员

python - Django Rest Framework 如何禁用身份验证和授权

android - 删除操作后更新 ListView

android - 如何从android中的spatialite数据库获取导出shapefile

Python多个类调用特定类时出错

python - 将文本转换为向量

python - Django 通用 View form_valid 无法在指定中间模型的 ManyToManyField 上设置值

python - 自动加载 Django Fixture

database - 如何从 sqlite3 附加数据库中的列进行更新?