在Django Rest FrameWork中'many = True'是做什么的?

Chi*_*yak 4 django django-rest-framework

我现在正在学习DRF,对此many = True代码有些困惑。它有什么作用?还是什么意思?

例子1

class AlbumSerializer(serializers.ModelSerializer):
    tracks = serializers.RelatedField(many=True)

    class Meta:
        model = Album
        fields = ('album_name', 'artist', 'tracks')
Run Code Online (Sandbox Code Playgroud)

例子2

class UserList(generics.ListCreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    permission_classes = (IsAdminUser,)

    def list(self, request):
        # Note the use of `get_queryset()` instead of `self.queryset`
        queryset = self.get_queryset()
        serializer = UserSerializer(queryset, many=True)
        return Response(serializer.data)
Run Code Online (Sandbox Code Playgroud)

ali*_*iva 10

我认为您many=True对很多房地产感到困惑,但是这些概念并非如此

通过设置,many=True您告诉drf queryset包含多个项目(项目列表),因此drf需要使用序列化程序类对每个项目进行序列化(serializer.data并将成为一个列表)

如果您未设置此参数,则表示queryset是单个实例,并且serializer.data将是单个对象)