我想要使用Django rest框架创建一个可以使用单个Post请求创建多个对象的api。但是,我的序列化程序提供了一个我不明白的错误。首先这里是我的代码的骨架Django Rest框架批量创建
我的串行:
class MyModelSerializer(serializers.ModelSerializer):
# override the constructor to always use the many flag
def __init__(self, *args, **kwargs):
many = kwargs.pop('many', True)
super(MyModelSerializer, self).__init__(many=many, *args, **kwargs)
class Meta:
model = MyModel
fields = ('field1', 'field2')
我的列表视图
class MyModelListView(generics.ListCreateAPIView):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
def post(self, request, *args, **kwargs):
if request.DATA['batch']:
json = request.DATA['batchData']
stream = StringIO(json)
data = JSONParser().parse(stream)
request._data = data
return super(CharacterDatumList, self).post(request, *args, **kwargs)
我的Ajax调用
$.ajax({
type: "POST",
url: '/characterDatum/',
data: {
'batch' : true,
'batchData' : '[{"field1": "x", "field2": "y", },{"field1": "a", "field2": "b"}]'
},
success: function(response) {
console.log('success');
},
datatype: 'json'
});
然而,在Django的REST框架我在
以下的行收到序列化验证错误class CreateModelMixin(object):
"""
Create a model instance.
"""
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.DATA, files=request.FILES)
if serializer.is_valid(): # returns not valid
有没有人知道为什么这可能是这种情况?
这也是为我工作的人。 – Blairg23