Django属性错误';datetime.timedelta';对象没有属性';解码';

Django属性错误';datetime.timedelta';对象没有属性';解码';,django,python-3.x,django-rest-framework,Django,Python 3.x,Django Rest Framework,我使用的是django rest框架的一个简单通用视图,该视图在本地机器上运行良好,但在服务器上给出了一个属性错误。这就是错误: AttributeError at /api/getcarts/ 'datetime.timedelta' object has no attribute 'decode' 下面是课堂: class GetCarts(generics.ListAPIView): serializer_class = CartSerializer queryset

我使用的是django rest框架的一个简单通用视图,该视图在本地机器上运行良好,但在服务器上给出了一个属性错误。这就是错误:

AttributeError at /api/getcarts/ 'datetime.timedelta' object has no attribute 'decode'
下面是课堂:

class GetCarts(generics.ListAPIView):
     serializer_class = CartSerializer
     queryset = TblCarts.objects.all()
奇怪的是,所有其他GET和POST API都工作正常。以下是TblCart:

class TblCarts(models.Model):
     price = models.IntegerField()
     location = models.CharField(max_length=500)
     location_coordinate = models.CharField(max_length=100, default=0)
     number = models.CharField(max_length=50)
     promo_code = models.CharField(max_length=50, default=0)
     receipt = models.CharField(max_length=100)
     order_receive_date = models.DateField(auto_now_add=True)
     order_receive_time = models.TimeField(auto_now_add=True)
     order_dispatch_time = models.TimeField(default='00:00', max_length=100)
     order_delivered_time = models.TimeField(default='00:00', max_length=100)
     order_status = models.CharField(max_length=100, default=1)

    class Meta:
         managed = False
         db_table = 'tbl_carts'
以下是序列化程序:

class CartSerializer(serializers.ModelSerializer):
    class Meta:
         model = TblCarts
         fields = '__all__'
我想不出是什么问题。这些版本是:python 3.6.5、Django 2.1、djangorestframework 3.8.2

错误回溯:

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
  34.             response = get_response(request)

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  126.                 response = self.process_exception_by_middleware(e, request)

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  124.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
  54.         return view_func(*args, **kwargs)

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/views/generic/base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
  483.             response = self.handle_exception(exc)

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception
  443.             self.raise_uncaught_exception(exc)

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
  480.             response = handler(request, *args, **kwargs)

File "/var/www/khaanpin/khanpinuser/api/views.py" in get
  51.         return Response({'error': 'false', 'data': CartSerializer(orders, many=True).data})

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/rest_framework/serializers.py" in data
  765.         ret = super(ListSerializer, self).data

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/rest_framework/serializers.py" in data
  262.                 self._data = self.to_representation(self.instance)

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/rest_framework/serializers.py" in to_representation
  683.             self.child.to_representation(item) for item in iterable

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/db/models/query.py" in __iter__
  268.         self._fetch_all()

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/db/models/query.py" in _fetch_all
  1183.             self._result_cache = list(self._iterable_class(self))

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/db/models/query.py" in __iter__
  63.         for row in compiler.results_iter(results):

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in cursor_iter
  1462.         for rows in iter((lambda: cursor.fetchmany(itersize)), sentinel):

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/db/models/sql/compiler.py" in <lambda>
  1462.         for rows in iter((lambda: cursor.fetchmany(itersize)), sentinel):

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/db/utils.py" in inner
  96.                 return func(*args, **kwargs)

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/mysql/connector/cursor_cext.py" in fetchmany
  510.             rows.extend(self._cnx.get_rows(size)[0])

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/mysql/connector/connection_cext.py" in get_rows
  280.                                                               row[i])

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/mysql/connector/conversion.py" in to_python
  205.             return self._cache_field_types[vtype[1]](value, vtype)

File "/var/www/khaanpin/khanpinuser/venv3/lib/python3.6/site-packages/mysql/connector/django/base.py" in _TIME_to_python
  106.         return dateparse.parse_time(value.decode('utf-8'))

Exception Type: AttributeError at /api/getcarts/
Exception Value: 'datetime.timedelta' object has no attribute 'decode'
Request information:
USER: 9999999999

GET: No GET data

POST: No POST data

FILES: No FILES data

COOKIES: No cookie data
File”/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/django/core/handlers/exception.py
34响应=获取响应(请求)
文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/core/handlers/base.py”中的
126response=self.process\u异常\u由\u中间件(e,请求)
文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site-packages/django/core/handlers/base.py”中的
124响应=包装的回调(请求,*回调参数,**回调参数)
包装视图中的文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/django/views/decorators/csrf.py”
54返回视图函数(*args,**kwargs)
视图中的文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/django/views/generic/base.py”
68返回自调度(请求,*args,**kwargs)
文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/rest\u framework/views.py”已发送
483响应=自身处理异常(exc)
句柄异常中的文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/rest\u framework/views.py”
443自举未捕获异常(exc)
文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/rest\u framework/views.py”已发送
480响应=处理程序(请求、*args、**kwargs)
get中的文件“/var/www/khanpin/khanpinuser/api/views.py”
51返回响应({'error':'false','data':CartSerializer(orders,many=True).data})
数据中的文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/rest\u framework/serializers.py”
765ret=super(ListSerializer,self).data
数据中的文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/rest\u framework/serializers.py”
262self.\u data=self.to\u表示(self.instance)
文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/rest\u framework/serializers.py”在to\u表示中
683iterable中项的self.child.to_表示(项)
文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/django/db/models/query.py”__
268self._fetch_all()
文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/django/db/models/query.py”
1183self.\u result\u cache=list(self.\u iterable\u class(self))
文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/django/db/models/query.py”__
63对于编译器中的行。结果\u iter(结果):
游标编辑器中的文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/django/db/models/sql/compiler.py”
1462对于iter中的行((lambda:cursor.fetchmany(itersize)),sentinel):
文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/django/db/models/sql/compiler.py”
1462对于iter中的行((lambda:cursor.fetchmany(itersize)),sentinel):
文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/django/db/utils.py”,位于内部
96返回函数(*args,**kwargs)
fetchmany中的文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/mysql/connector/cursor_cext.py”
510rows.extend(self.\u cnx.get\u rows(size)[0])
get_行中的文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/mysql/connector/connection_cext.py”
280第[i]行)
文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site-packages/mysql/connector/conversion.py”到python
205返回self.\u缓存\u字段\u类型[vtype[1]](值,vtype)
python中的文件“/var/www/khanpin/khanpinuser/venv3/lib/python3.6/site packages/mysql/connector/django/base.py”
106return dateparse.parse_time(value.decode('utf-8'))
异常类型:AttributeError at/api/getcarts/
异常值:“datetime.timedelta”对象没有“decode”属性
请求信息:
用户:99999999
获取:不获取数据
POST:无POST数据
文件:没有文件和数据
COOKIES:没有cookie数据
不要使用:

 order_dispatch_time = models.TimeField(default='00:00', max_length=100)
 order_delivered_time = models.TimeField(default='00:00', max_length=100)
而是使用:

 import datetime
  <...you model ...>
 order_dispatch_time = models.TimeField(default=datetime.time(00,00))
 order_delivered_time = models.TimeField(default=datetime.time(00,00))
导入日期时间
订单调度时间=models.TimeField(默认值=datetime.time(00,00))
订单交付时间=models.TimeField(默认值=datetime.time(00,00))

问题似乎与您正在使用的数据库连接器有关

我解决这个问题的方法是在连接数据库时使用
mysql-connector-c
而不是
mysql-client

我曾经解决过我的问题,但最后还有另一个选择

步骤是:

  • pip安装mysql连接器python
  • pip安装mysqlclient
  • 更改我的设置文件中的数据库设置(在我的示例中为base.py)
    • 来自
      “default”:env.db('db_default',default=f'mysql-connector://root:password@{HOST_MYSQL}:3306/YOUR_DB')
    • 默认值:env.db('db_default',default=f'mysql://root:password@{HOST_MYSQL}:3306/YOUR_DB')
  • 另一个选项是将
    use\u pure
    从db选项更改为
    true
    ,您可以通过向连接URL添加
    ?use\u pure=true
    查询字符串来完成此操作

    最后一个可能会影响连接性能,因为它确保使用Python的纯co