私は現在 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
単一のオブジェクトになります)