fix: 导入文档标题不能超过256个字符,修改统一响应异常
This commit is contained in:
parent
c575d080c5
commit
d266b83d84
@ -55,18 +55,22 @@ def validation_error_to_result(exc: ValidationError):
|
|||||||
return result.error(str(exc.detail))
|
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):
|
if isinstance(exc_detail, dict):
|
||||||
keys = exc_detail.keys()
|
keys = exc_detail.keys()
|
||||||
for key in keys:
|
for key in keys:
|
||||||
_value = exc_detail[key]
|
_value = exc_detail[key]
|
||||||
if isinstance(_value, list):
|
if isinstance(_value, list):
|
||||||
for v in _value:
|
return find_err_detail(_value)
|
||||||
return v
|
|
||||||
elif isinstance(_value, ErrorDetail):
|
elif isinstance(_value, ErrorDetail):
|
||||||
return _value
|
return _value
|
||||||
elif isinstance(_value, dict):
|
elif isinstance(_value, dict):
|
||||||
return find_err_detail(_value)
|
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):
|
def handle_exception(exc, context):
|
||||||
|
|||||||
@ -41,7 +41,7 @@ class ParagraphInstanceSerializer(ApiMixin, serializers.Serializer):
|
|||||||
min_length=1,
|
min_length=1,
|
||||||
allow_null=True, allow_blank=True)
|
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)
|
allow_null=True, allow_blank=True)
|
||||||
|
|
||||||
problem_list = ProblemInstanceSerializer(required=False, many=True)
|
problem_list = ProblemInstanceSerializer(required=False, many=True)
|
||||||
|
|||||||
@ -33,7 +33,7 @@ class ProblemSerializer(serializers.ModelSerializer):
|
|||||||
class ProblemInstanceSerializer(ApiMixin, serializers.Serializer):
|
class ProblemInstanceSerializer(ApiMixin, serializers.Serializer):
|
||||||
id = serializers.CharField(required=False, error_messages=ErrMessage.char("问题id"))
|
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
|
@staticmethod
|
||||||
def get_request_body_api():
|
def get_request_body_api():
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user