Django更改查询结果的字段类型(!)

时间:2012-05-10 15:57:25

标签: django django-models django-orm

我有以下型号

class MonitorData(models.Model):
  [... other stuff]
  starttime = models.CharField(max_length=64, db_column='spurlStartTime', blank=True) 

因此,starttime是一个char字段(在数据库中,它代表一个datetime列)

现在,这就是我在做的事情:

oo=models.MonitorData.objects.all()
print oo[0].starttime
print type(oo[0].starttime)

这就是我得到的:

00:35:59
<type 'datetime.time'>

出于我自己的原因(不想讨论它们)我想把它作为varchar读取然后自己解析它。但django不允许我这样做,因为由于我不知道的原因,它将其转换为日期时间!

任何人都可以向我解释为什么django会有这种行为,我怎样才能获得我的宝贵琴弦?有没有办法强制django将此值转换为字符串?

ps:我知道如何使用str()所以请不要回答我

2 个答案:

答案 0 :(得分:4)

Django没有做任何事情。 DBAPI适配器看到它是DATETIME,因此返回日期时间。 CharField中没有任何内容强制将日期时间用于文本。

答案 1 :(得分:0)

我想, 而不是以datetime格式保存值。尝试将其保存在isoformat中。你可以轻松转换。