第一次用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