From d266b83d848a3f2e1f21f5c5ea863f183fa3a61f Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Wed, 6 Mar 2024 18:37:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=AF=BC=E5=85=A5=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=A0=87=E9=A2=98=E4=B8=8D=E8=83=BD=E8=B6=85=E8=BF=87256?= =?UTF-8?q?=E4=B8=AA=E5=AD=97=E7=AC=A6,=E4=BF=AE=E6=94=B9=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E5=93=8D=E5=BA=94=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/handle/handle_exception.py | 10 +++++++--- apps/dataset/serializers/paragraph_serializers.py | 2 +- apps/dataset/serializers/problem_serializers.py | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) 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():