我有一个稍微复杂的 APIView,这使得我无法使用通用的ListAPIView返回查询集。但我似乎无法简单地使用 ModelSerializer 序列化一个简单的 Django 查询集,即使我设置了many=True.
不知怎的,这不起作用:
序列化器.py:
class SomeModelSerializer(serializers.ModelSerializer):
class Meta:
model = SomeModel
fields = ['some_field']
Run Code Online (Sandbox Code Playgroud)
视图.py:
from rest_framework.response import Response
class SomeAPIView(APIView):
serializer_class = SomeInputSerializer
def post(self, request, format=None):
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
# first some business logic, then return results
results = SomeModel.objects.all()
output_serializer = SomeModelSerializer(results, many=True)
return Response(output_serializer.data)
Run Code Online (Sandbox Code Playgroud)
我不断得到的是:'ListSerializer' object is not iterable。
我究竟做错了什么?
错误:
/projectfolder/venv/lib/python2.7/site-packages/django/template/defaulttags.py in render
try:
values = self.sequence.resolve(context, True)
except VariableDoesNotExist:
values = [] …Run Code Online (Sandbox Code Playgroud)