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




  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值