diff --git a/hb_server/apps/qm/serializers.py b/hb_server/apps/qm/serializers.py index 571aed8..7762119 100644 --- a/hb_server/apps/qm/serializers.py +++ b/hb_server/apps/qm/serializers.py @@ -48,12 +48,12 @@ class TestRecordItemUpdateSerializer(serializers.ModelSerializer): class TestRecordItemSerializer(serializers.ModelSerializer): - need_judge = serializers.BooleanField(source='form_field__need_judge', read_only=True) - rule_expression = serializers.JSONField(source='form_field__rule_expression', read_only=True) - display_expression = serializers.JSONField(source='form_field__display_expression', read_only=True) - is_hidden = serializers.BooleanField(source='form_field__is_hidden', read_only=True) - help_text = serializers.CharField(source='form_field__help_text', read_only=True) - sort = serializers.IntegerField(source='form_field__sort', read_only=True) + need_judge = serializers.BooleanField(source='form_field.need_judge', read_only=True) + rule_expression = serializers.JSONField(source='form_field.rule_expression', read_only=True) + display_expression = serializers.JSONField(source='form_field.display_expression', read_only=True) + is_hidden = serializers.BooleanField(source='form_field.is_hidden', read_only=True) + help_text = serializers.CharField(source='form_field.help_text', read_only=True) + sort = serializers.IntegerField(source='form_field.sort', read_only=True) class Meta: model = TestRecordItem fields = '__all__' @@ -73,25 +73,26 @@ class TestRecordListSerializer(serializers.ModelSerializer): class TestRecordDetailBaseSerializer(serializers.ModelSerializer): form_ = RecordFormSimpleSerializer(source='form', read_only=True) - record_data = TestRecordItemSerializer(source='item_test_record', read_only=True, many=True) + record_data = serializers.SerializerMethodField() create_by_ = UserSimpleSerializer(source='create_by', read_only=True) class Meta: model = TestRecord fields = '__all__' + + def get_record_data(self, obj): + return TestRecordItemSerializer(instance=obj.item_test_record.order_by('form_field__sort'), many=True).data class TestRecordDetailSerializer(serializers.ModelSerializer): form_ = RecordFormSimpleSerializer(source='form', read_only=True) - record_data = TestRecordItemSerializer(source='item_test_record', read_only=True, many=True) - # record_data_ = serializers.SerializerMethodField() + # record_data = TestRecordItemSerializer(source='item_test_record', read_only=True, many=True) + record_data = serializers.SerializerMethodField() origin_test_ = TestRecordDetailBaseSerializer(source='origin_test', read_only=True) class Meta: model = TestRecord fields = '__all__' - # def get_record_data_(self, obj): - # items_data = TestRecordItemSerializer(instance=obj.item_test_record, many=True).data - # if obj.origin_test and obj.type == TestRecord.TEST_PROCESS_RE: - # origin_ + def get_record_data(self, obj): + return TestRecordItemSerializer(instance=obj.item_test_record.order_by('form_field__sort'), many=True).data def to_representation(self, instance): ret = super().to_representation(instance)