perf: 修改 labels 绑定引起的问题

This commit is contained in:
ibuler
2023-12-19 18:42:44 +08:00
committed by Bryan
parent 45425b11d2
commit 0b7552a6ee
8 changed files with 28 additions and 10 deletions

View File

@@ -9,7 +9,7 @@ from rest_framework import status
from rest_framework.exceptions import ParseError, APIException
from rest_framework.parsers import BaseParser
from common.serializers.fields import ObjectRelatedField
from common.serializers.fields import ObjectRelatedField, LabeledChoiceField
from common.utils import get_logger
logger = get_logger(__file__)
@@ -126,6 +126,10 @@ class BaseFileParser(BaseParser):
value = [self.id_name_to_obj(v) for v in value]
else:
value = self.id_name_to_obj(value)
elif isinstance(field, LabeledChoiceField):
value = self.id_name_to_obj(value)
if isinstance(value, dict) and value.get('pk'):
value = value.get('pk')
elif isinstance(field, serializers.ListSerializer):
value = [self.parse_value(field.child, v) for v in value]
elif isinstance(field, serializers.Serializer):