Django Rest Frameworkで「many = True」は何をしますか? 質問する

Django Rest Frameworkで「many = True」は何をしますか? 質問する

私は現在 DRF を学習中ですが、このコードに少し困惑していますmany = True。これは何をするのでしょうか? あるいは、何を意味するのでしょうか?

例1

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

    class Meta:
        model = Album
        fields = ('album_name', 'artist', 'tracks')

例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)

ベストアンサー1

many=True多対多の関係と混同していると思いますが、概念はそうではありません

設定することでmany=True、クエリセットに複数のアイテム(アイテムのリスト)が含まれていることをdrfに伝え、drfはシリアライザークラスを使用して各アイテムをシリアル化する必要があります(serializer.dataリストになります)。

この引数を設定しない場合、クエリセットは単一のインスタンスであり、serializer.data単一のオブジェクトになります)

おすすめ記事