功能变化: 外键删除保护

v2.x
猿小天 2023-03-21 11:15:27 +08:00
parent 048a1bdd41
commit 69d8c3efc0
2 changed files with 8 additions and 7 deletions

View File

@ -149,7 +149,7 @@ class Dept(CoreModel):
class Menu(CoreModel):
parent = models.ForeignKey(
to="Menu",
on_delete=models.CASCADE,
on_delete=models.PROTECT,
verbose_name="上级菜单",
null=True,
blank=True,
@ -184,7 +184,7 @@ class MenuButton(CoreModel):
to="Menu",
db_constraint=False,
related_name="menuPermission",
on_delete=models.CASCADE,
on_delete=models.PROTECT,
verbose_name="关联菜单",
help_text="关联菜单",
)
@ -309,7 +309,7 @@ class Area(CoreModel):
to="self",
verbose_name="父地区编码",
to_field="code",
on_delete=models.CASCADE,
on_delete=models.PROTECT,
db_constraint=False,
null=True,
blank=True,
@ -348,7 +348,7 @@ class SystemConfig(CoreModel):
parent = models.ForeignKey(
to="self",
verbose_name="父级",
on_delete=models.CASCADE,
on_delete=models.PROTECT,
db_constraint=False,
null=True,
blank=True,

View File

@ -12,7 +12,7 @@ import traceback
from django.db.models import ProtectedError
from django.http import Http404
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
@ -30,7 +30,8 @@ def CustomExceptionHandler(ex, context):
"""
msg = ''
code = 4000
# 调用默认的异常处理函数
response = exception_handler(ex, context)
if isinstance(ex, AuthenticationFailed):
code = 401
msg = ex.detail
@ -46,7 +47,7 @@ def CustomExceptionHandler(ex, context):
msg = "%s:%s" % (k, i)
elif isinstance(ex, ProtectedError):
set_rollback()
msg = "删除失败:该条数据与其他数据有相关绑定"
msg = "无法删除:该条数据与其他数据有相关绑定"
# elif isinstance(ex, DatabaseError):
# set_rollback()
# msg = "接口服务器异常,请联系管理员"