Я использую Django 2.x и Django REST Framework
class ComponentDataSerializer(serializers.ModelSerializer):
class Meta:
model = ComponentData
fields = [
'id',
'analytics_type'
]
class ComponentSerializer(serializers.ModelSerializer):
data = ComponentDataSerializer(many=True)
class Meta:
model = Component
fields = [
'id',
'name',
'group',
'data',
]
def validate(self, attrs):
print('validate data: {}'.format(attrs))
return attrs
С запросом POST
, attrs
в validate()
is
validate data: OrderedDict([('name', 'Component Test'), ('group', <AnalyticsGroup: Chart>), ('data', [OrderedDict([('analytics_type', <AnalyticsType: Bar Chart>)])])])
При использовании запроса PATCH
атрибут data
имеет пустое значение OrderedDict
validate data: OrderedDict([('group', <AnalyticsGroup: Chart>), ('data', [OrderedDict()])])
Полезная нагрузка данных в каждом запросе одинакова.
name: "Component Test"
group: "2"
data[0]analytics_type: "3"
data[0]analytics_sub_type: "2"
data[0]query: "9"
Где значение для каждого поля analytics_type
, analytics_sub_type
и query
равно pk
соответственно.