将浮点数保存到FloatField Django模型,为什么要强制转换为Unicode:需要字符串或缓冲区,浮点数找到

时间:2014-09-21 17:07:33

标签: python django unicode

我有一个模特:

 class Conditions(models.Model):
        date_time = models.DateTimeField(blank=True, null=True)
        temperature = models.FloatField(blank=True, null=True)
        humidity = models.FloatField(blank=True, null=True)

        def __unicode__(self):
            return self.temperature

我有数据加载到从谷歌docs导入的模型中。我保存就是这样:

conditions_obj = Conditions.objects.get_or_create(
                    date_time=datetime.datetime.strptime(row[0],'%m/%d/%Y %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S'),
                    temperature=float(row[1]),
                    humidity=float(row[2]))

当我这样做时,我收到此错误,我不确定原因:

TypeError: coercing to Unicode: need string or buffer, float found

我的温度值是否需要保存为字符串,因为如果我这样做,那么事情就会起作用。就像是集市。

1 个答案:

答案 0 :(得分:0)

问题不在于保存:问题在于__unicode__方法。顾名思义,它需要返回一个unicode值,而不是float。

你可以明确地转换它:

def __unicode__(self):
    return unicode(self.temperature)