错误返回优化

This commit is contained in:
caoqianming 2022-06-18 16:53:53 +08:00
parent 8789896800
commit eef50a8920
2 changed files with 9 additions and 5 deletions

View File

@ -39,7 +39,7 @@ class NotifySetting(CommonAModel):
to_field='code', on_delete=models.CASCADE)
post = models.ForeignKey(Post, verbose_name='提醒岗位',
on_delete=models.CASCADE, null=True, blank=True)
filter_sender = models.PositiveSmallIntegerField('提醒人员过滤', null=True, blank=True)
filter_recipient = models.PositiveSmallIntegerField('提醒人员过滤', null=True, blank=True)
filter_area_level = models.PositiveSmallIntegerField('区域级别过滤', null=True, blank=True)
sms_enable = models.BooleanField('短信通知', default=False)
wechat_enable = models.BooleanField('开启微信通知', default=False)

View File

@ -2,6 +2,7 @@ import traceback
from django.core.exceptions import PermissionDenied
from django.http import Http404
from numpy import isin
from rest_framework import exceptions
from rest_framework.response import Response
from rest_framework.views import set_rollback
@ -24,11 +25,14 @@ def custom_exception_hander(exc, context):
headers['WWW-Authenticate'] = exc.auth_header
if getattr(exc, 'wait', None):
headers['Retry-After'] = '%d' % exc.wait
if isinstance(exc.detail, (list, dict)):
data = {'err_detail': exc.detail}
data = {'err_detail': exc.detail}
if isinstance(exc.detail, dict):
prefix = list(exc.detail.keys())[0]
data['err_code'] = exc.default_code
data['err_msg'] = exc.default_detail
data['err_msg'] = prefix + str(exc.detail[prefix]) # 取一部分方便前端alert
elif isinstance(exc.detail, list):
data['err_code'] = exc.default_code
data['err_msg'] = str(exc.detail[0]) if exc.detail else ''
else:
data = {'err_msg': exc.detail, 'err_code': exc.get_codes()}