【问题标题】:Django error, coercing to Unicode: need string or buffer, datetime.timedelta foundDjango 错误,强制转换为 Unicode:需要字符串或缓冲区,找到 datetime.timedelta
【发布时间】:2014-02-22 07:54:09
【问题描述】:

这是发生错误的代码:

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

这里的arrival是一个有效的日期时间对象,而nights是一个整数。

【问题讨论】:

    标签: python django datetime unicode


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您应该能够通过确保非 unicode/非字符串(如整数和日期时间对象)用 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" 
      

      【讨论】:

        猜你喜欢
        • 2021-03-28
        • 2018-05-07
        • 2012-04-12
        • 2011-07-17
        • 2013-04-26
        • 1970-01-01
        • 2012-06-06
        • 1970-01-01
        • 2016-04-28
        相关资源
        最近更新 更多