2017-10-10 41 views
0

我有這種情況,我通過POST接收到該數據:Django的RestFramework串行request.data與陣列對象

{'fields':[{'key':'comment', 'value':'something', 'data_type':'string'}, 
      {'key':'days', 'value':'2', 'data_type':'int'}]} 

我的串行

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) 

我認爲通req​​uest.data到FieldsSerializer( )

serializer = FieldsSerializer(data=request.data) 
serializer.is_valid() 
raise Exception(serializer.data, serializer.errors) 

輸出:

例外:(ReturnDict([( '字段',[])]),ReturnDict())

我使用版本的Django == 1.8.15和djangorestframework == 3.0

回答

0

你對於您的FieldsSerializer有單個數據,所以您只需在初始化序列化程序時刪除many=True

serializer = FieldsSerializer(data=request.data) 
#           ^^^^^^ 

或作爲通用的解決方案

many = isinstance(request.data, list) 
serializer = FieldsSerializer(data=request.data, many=many) 
相關問題