django - DRF JSONRenderer 'ReturnList' 对象没有属性 'get'
问题描述
我正在尝试遵循教程Django Rest Framework
并使VueJS
它们一起工作。虽然使用JSONRenderer
render
函数现在给我一个问题:
AttributeError: 'ReturnList' object has no attribute 'get'
我的列表视图是:
from rest_framework import status
from rest_framework.generics import ListAPIView, RetrieveAPIView
from rest_framework.permissions import AllowAny
from rest_framework.response import Response
from .models import Cat
from .renderers import CatJSONRenderer
from .serializers import CatSerializer, CatListSerializer
class CatListApiView(ListAPIView):
model = Cat
queryset = Cat.objects.all()
permissions_classes = (AllowAny, )
renderer_classes = (CatJSONRenderer, )
serializer_class = CatListSerializer
我的 renderers.py 是:
class CatJSONRenderer(JSONRenderer):
charset = 'utf-8'
def render(self, data, media_type=None, renderer_context=None):
print(data)
errors = data.get('errors', None)
if errors is not None:
return super(CatJSONRenderer, self).render(data)
return json.dumps({'cats': data})
Traceback 是:
Traceback:
File "/home/ytsejam/.virtualenvs/londonyogavidya/lib/python3.7/site-packages/django/core/handlers/exception.py" in inner
34. response = get_response(request)
File "/home/ytsejam/.virtualenvs/londonyogavidya/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response
156. response = self.process_exception_by_middleware(e, request)
File "/home/ytsejam/.virtualenvs/londonyogavidya/lib/python3.7/site-packages/django/core/handlers/base.py" in _get_response
154. response = response.render()
File "/home/ytsejam/.virtualenvs/londonyogavidya/lib/python3.7/site-packages/django/template/response.py" in render
106. self.content = self.rendered_content
File "/home/ytsejam/.virtualenvs/londonyogavidya/lib/python3.7/site-packages/rest_framework/response.py" in rendered_content
72. ret = renderer.render(self.data, accepted_media_type, context)
File "/home/ytsejam/public_html/londoner/yogavidya/apps/cat/renderers.py" in render
7. errors = data.get('errors', None)
Exception Type: AttributeError at /api/cats/
Exception Value: 'ReturnList' object has no attribute 'get'
我怎么解决这个问题 ?谢谢
解决方案
我可以通过安装来解决这个django-rest-framework-json-api.
问题如果有人遇到问题,这正在转换dict
为JSON
.
推荐阅读
- c# - 什么是 MapHeader?
- server - 如何使用 ngrok 公开两个端口?
- python - 如何使用 dask 将大量列数据写入 excel 文件的列?
- javascript - 如何在文本区域中插入具有 SVG 格式的自定义表情符号
- javascript - 从 ReactJs 中的异步代码中捕获异常的问题
- android - 在应用程序运行时获取特定的字符串资源翻译
- angular - 错误消息:Shelljs 0.8.3 及之前版本容易受到命令注入的攻击
- powershell - Powershell中的Truncat日志消息
- jquery - select2 使用 jquery 删除选择
- excel - 如何在单独的用户窗体中操作控件?