0

私はDjangoでREST APIに取り組んでいます。

これが私の見解です:

if request.method == 'GET':
    print "In get*****************"
    print "Request",request
    queryset = Beer.objects.all()
    serializer = BeerSerializer(queryset, many=True)
    return Response(serializer.data)

elif request.method == 'POST':
   print "In get*****************"
   print "Request",request.data
   serializer = FosterSerializer(data=request.data)
   if serializer.is_valid():
     serializer.save()
     return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

正常に動作しています

curl -X POST http://192.168.2.241:8080/beers/ \
  -d '{"beer_type": "blond", "brand": "Foster" ,"ml": "6000"}' \
  -H "Content-Type: application/json"

しかし、一緒に働いていません

curl -X POST http://192.168.2.241:8080/beers/ \
  -d '[{"beer_type": "Mild1", "brand": "Foster" ,"ml": "199"},{"beer_type": "Mild", "brand": "Foster" ,"ml": "2"}]' \
  -H "Content-Type: application/json"

JSON オブジェクトのリストを処理するにはどうすればよいですか?

4

1 に答える 1

0

1 回のリクエストで複数のオブジェクトを作成しようとしていると思います。モデルのシリアライザー クラスをインスタンス化するときに many=True を渡すと、複数のオブジェクトを受け入れることができます。

これは、django rest framework docs でここに記載されています

class FosterSerializer(serializers.ModelSerializer):
def __init__(self, *args, **kwargs):
    many = kwargs.pop('many', True)
    super(FosterSerializer, self).__init__(many=many, *args, **kwargs)

class Meta:
    model = Beer
    fields = ('loads', 'of', 'fields', )

ソース : Django Rest Framework で複数のモデル インスタンスを作成するにはどうすればよいですか?

于 2015-09-24T10:30:48.307 に答える