小编Vin*_*wen的帖子

使用 Django Rest Framework 序列化查询集时的“ListSerializer”

我有一个稍微复杂的 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)

python django django-rest-framework

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

django ×1

django-rest-framework ×1

python ×1