功能变化: 外键删除保护
parent
048a1bdd41
commit
69d8c3efc0
|
@ -149,7 +149,7 @@ class Dept(CoreModel):
|
||||||
class Menu(CoreModel):
|
class Menu(CoreModel):
|
||||||
parent = models.ForeignKey(
|
parent = models.ForeignKey(
|
||||||
to="Menu",
|
to="Menu",
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.PROTECT,
|
||||||
verbose_name="上级菜单",
|
verbose_name="上级菜单",
|
||||||
null=True,
|
null=True,
|
||||||
blank=True,
|
blank=True,
|
||||||
|
@ -184,7 +184,7 @@ class MenuButton(CoreModel):
|
||||||
to="Menu",
|
to="Menu",
|
||||||
db_constraint=False,
|
db_constraint=False,
|
||||||
related_name="menuPermission",
|
related_name="menuPermission",
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.PROTECT,
|
||||||
verbose_name="关联菜单",
|
verbose_name="关联菜单",
|
||||||
help_text="关联菜单",
|
help_text="关联菜单",
|
||||||
)
|
)
|
||||||
|
@ -309,7 +309,7 @@ class Area(CoreModel):
|
||||||
to="self",
|
to="self",
|
||||||
verbose_name="父地区编码",
|
verbose_name="父地区编码",
|
||||||
to_field="code",
|
to_field="code",
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.PROTECT,
|
||||||
db_constraint=False,
|
db_constraint=False,
|
||||||
null=True,
|
null=True,
|
||||||
blank=True,
|
blank=True,
|
||||||
|
@ -348,7 +348,7 @@ class SystemConfig(CoreModel):
|
||||||
parent = models.ForeignKey(
|
parent = models.ForeignKey(
|
||||||
to="self",
|
to="self",
|
||||||
verbose_name="父级",
|
verbose_name="父级",
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.PROTECT,
|
||||||
db_constraint=False,
|
db_constraint=False,
|
||||||
null=True,
|
null=True,
|
||||||
blank=True,
|
blank=True,
|
||||||
|
|
|
@ -12,7 +12,7 @@ import traceback
|
||||||
from django.db.models import ProtectedError
|
from django.db.models import ProtectedError
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from rest_framework.exceptions import APIException as DRFAPIException, AuthenticationFailed
|
from rest_framework.exceptions import APIException as DRFAPIException, AuthenticationFailed
|
||||||
from rest_framework.views import set_rollback
|
from rest_framework.views import set_rollback, exception_handler
|
||||||
|
|
||||||
from dvadmin.utils.json_response import ErrorResponse
|
from dvadmin.utils.json_response import ErrorResponse
|
||||||
|
|
||||||
|
@ -30,7 +30,8 @@ def CustomExceptionHandler(ex, context):
|
||||||
"""
|
"""
|
||||||
msg = ''
|
msg = ''
|
||||||
code = 4000
|
code = 4000
|
||||||
|
# 调用默认的异常处理函数
|
||||||
|
response = exception_handler(ex, context)
|
||||||
if isinstance(ex, AuthenticationFailed):
|
if isinstance(ex, AuthenticationFailed):
|
||||||
code = 401
|
code = 401
|
||||||
msg = ex.detail
|
msg = ex.detail
|
||||||
|
@ -46,7 +47,7 @@ def CustomExceptionHandler(ex, context):
|
||||||
msg = "%s:%s" % (k, i)
|
msg = "%s:%s" % (k, i)
|
||||||
elif isinstance(ex, ProtectedError):
|
elif isinstance(ex, ProtectedError):
|
||||||
set_rollback()
|
set_rollback()
|
||||||
msg = "删除失败:该条数据与其他数据有相关绑定"
|
msg = "无法删除:该条数据与其他数据有相关绑定"
|
||||||
# elif isinstance(ex, DatabaseError):
|
# elif isinstance(ex, DatabaseError):
|
||||||
# set_rollback()
|
# set_rollback()
|
||||||
# msg = "接口服务器异常,请联系管理员"
|
# msg = "接口服务器异常,请联系管理员"
|
||||||
|
|
Loading…
Reference in New Issue