Django错误,强制转换为Unicode:需要字符串或缓冲区,找到datetime.timedelta

时间:2014-01-30 06:23:23

标签: python django datetime unicode

以下是发生错误的代码:

date_arrive = datetime.datetime.strptime(request.session.get('arrival'), '%m/%d/%Y'),\
date_depart = date_arrive + datetime.timedelta(days=request.session.get('nights')))).save()

每次Django到达此视图时,都会抛出错误:

Exception Value: coercing to Unicode: need string or buffer, datetime.timedelta found

此处到达是有效的日期时间对象,夜晚是整数。

2 个答案:

答案 0 :(得分:1)

我建议你包括函数调用的完整列表。

似乎你尝试连接unicode和datatime对象,这是不可能的。您必须将date_arrive转换为datetime或将“datetime.timedelta(days = request.session.get('nights')”转换为unicode,具体取决于您的函数需要的类型为date_depart参数。

答案 1 :(得分:0)

您应该能够通过确保非整数/非字符串(如整数和日期时间对象)被str(your_date_object_here)包围来解决此问题。

当我在Django中遇到此错误时,我能够使用以下两种方法修复它:

def __str__(self): 
    return str(self.datetimeobject) + " other string return info"

def __str__(self):
    return unicode(self.datetimeobject) + " other string return info"