diff --git a/apps/common/handle/handle_exception.py b/apps/common/handle/handle_exception.py index 272588c56..dfe2496ab 100644 --- a/apps/common/handle/handle_exception.py +++ b/apps/common/handle/handle_exception.py @@ -55,18 +55,22 @@ def validation_error_to_result(exc: ValidationError): return result.error(str(exc.detail)) -def find_err_detail(exc_detail: Dict): +def find_err_detail(exc_detail): + if isinstance(exc_detail, ErrorDetail): + return exc_detail if isinstance(exc_detail, dict): keys = exc_detail.keys() for key in keys: _value = exc_detail[key] if isinstance(_value, list): - for v in _value: - return v + return find_err_detail(_value) elif isinstance(_value, ErrorDetail): return _value elif isinstance(_value, dict): return find_err_detail(_value) + if isinstance(exc_detail, list): + for v in exc_detail: + return find_err_detail(v) def handle_exception(exc, context): diff --git a/apps/dataset/serializers/paragraph_serializers.py b/apps/dataset/serializers/paragraph_serializers.py index db0c5cef8..4bafcabd1 100644 --- a/apps/dataset/serializers/paragraph_serializers.py +++ b/apps/dataset/serializers/paragraph_serializers.py @@ -41,7 +41,7 @@ class ParagraphInstanceSerializer(ApiMixin, serializers.Serializer): min_length=1, allow_null=True, allow_blank=True) - title = serializers.CharField(required=False, error_messages=ErrMessage.char("段落标题"), + title = serializers.CharField(required=False, max_length=256, error_messages=ErrMessage.char("段落标题"), allow_null=True, allow_blank=True) problem_list = ProblemInstanceSerializer(required=False, many=True) diff --git a/apps/dataset/serializers/problem_serializers.py b/apps/dataset/serializers/problem_serializers.py index 6d6af97b5..449d6e814 100644 --- a/apps/dataset/serializers/problem_serializers.py +++ b/apps/dataset/serializers/problem_serializers.py @@ -33,7 +33,7 @@ class ProblemSerializer(serializers.ModelSerializer): class ProblemInstanceSerializer(ApiMixin, serializers.Serializer): id = serializers.CharField(required=False, error_messages=ErrMessage.char("问题id")) - content = serializers.CharField(required=True, error_messages=ErrMessage.char("问题内容")) + content = serializers.CharField(required=True, max_length=256, error_messages=ErrMessage.char("问题内容")) @staticmethod def get_request_body_api():