python django AttributeError: 'QuerySet' object has no attribute '_meta'

第一次用django,在写接口的时候出现了下面的异常

Internal Server Error: /api/proxys/list
Traceback (most recent call last):
  File "D:\Python27\lib\site-packages\django\core\handlers\exception.py", line 41, in inner
    response = get_response(request)
  File "D:\Python27\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "D:\Python27\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "D:\pythonWork\workSpace\isms\spm\spm\server\core\views.py", line 660, in proxys_list
    return JsonResponse(model_to_dict(data))
  File "D:\Python27\lib\site-packages\django\forms\models.py", line 88, in model_to_dict
    opts = instance._meta
AttributeError: 'QuerySet' object has no attribute '_meta'
[16/Nov/2017 09:42:05] "POST /api/proxys/list HTTP/1.1" 500 72887

出现这个问题主要是django 的model_to_dict 方法报的异常。

那就先去了解model_to_dict 到底是用来干嘛的吧(估计是我用法不当):

顾名思义,是将model转化成字典。

用django操作db 使用的是Proxys.objects.all()[:10],使用Proxys.objects.get(id=1)然后再model_to_dict是没有问题的。

难道这两个方法返回的不一样?

Proxys.objects.all()[:10] 返回的是QuerySet

Proxys.objects.get(id=1) 返回的是Model

已经可以看出来的 all() 不需要 model_to_dict 进行转换 ,直接使用JsonResponse(data) 就能得到json数据。

尴尬,居然是没用对api




你可能感兴趣的:(python,python,django)