diff --git a/hb_server/apps/qm/serializers.py b/hb_server/apps/qm/serializers.py index 314fcd3..863196e 100644 --- a/hb_server/apps/qm/serializers.py +++ b/hb_server/apps/qm/serializers.py @@ -105,8 +105,14 @@ class TestRecordDetailSerializer(serializers.ModelSerializer): i['origin_value'] = o_dict[i['field_key']] if i['field_key'] in o_dict else None return super().to_representation(instance) +class TestRecordItemUpdatexSerializer(serializers.Serializer): + id = serializers.PrimaryKeyRelatedField(queryset=TestRecordItem.objects.all()) + field_value = serializers.JSONField(allow_null=True, required=False) + is_testok = serializers.BooleanField(allow_null=True, required=False) + is_hidden = serializers.BooleanField(default=False) + class TestRecordUpdateSerializer(serializers.ModelSerializer): - record_data = TestRecordItemUpdateSerializer(many=True) + record_data = TestRecordItemUpdatexSerializer(many=True) class Meta: model = TestRecord fields = ['is_testok', 'record_data'] @@ -116,5 +122,10 @@ class TestRecordUpdateSerializer(serializers.ModelSerializer): for attr, value in validated_data.items(): setattr(instance, attr, value) instance.save() - self.record_data.save() + for i in record_data: + tri = i['id'] + tri.field_value = i['field_value'] + tri.is_testok = i['is_testok'] + tri.is_hidden = i['is_hidden'] + tri.save() return instance