i have this situation, i received by POST this data:
{'fields':[{'key':'comment', 'value':'something', 'data_type':'string'},
{'key':'days', 'value':'2', 'data_type':'int'}]}
My serializers
class FieldSerializer(serializers.Serializer):
value = serializers.CharField(max_length=200)
data_type = serializers.CharField(max_length=200)
key = serializers.CharField(max_length=200)
class FieldsSerializer(serializers.Serializer):
fields = FieldSerializer(many=True)
In my view pass request.data to FieldsSerializer()
serializer = FieldsSerializer(data=request.data)
serializer.is_valid()
raise Exception(serializer.data, serializer.errors)
output:
Exception: (ReturnDict([('fields', [])]), ReturnDict())
i use versions Django==1.8.15 and djangorestframework==3.0
you has single data for your FieldsSerializer
, so you just need to remove many=True
while initial the serializer.
serializer = FieldsSerializer(data=request.data)
# ^^^^^^
or as universal solution
many = isinstance(request.data, list)
serializer = FieldsSerializer(data=request.data, many=many)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.