【问题标题】:Django delete error messageDjango 删除错误信息
【发布时间】:2017-11-17 22:56:07
【问题描述】:

我有两个模型。 当我尝试删除联系人时收到错误

Exception Value:    

("Cannot delete some instances of model 'GuestContact' because they are referenced through a protected foreign key: 'Reservation.res_company'", <QuerySet [<Reservation: Reservation object>, <Reservation: Reservation object>]>)

我不想看到 django 错误页面。我要发送信息“此记录无法删除,但此联系人用于预订”

你能帮我吗?

问候

【问题讨论】:

  • 您可以发布视图吗??

标签: django django-models django-forms django-templates django-views


【解决方案1】:

您可以在try:except 中使用delete() 并返回带有自定义错误消息的响应,

from django.db.models import ProtectedError

try:
    instance.delete()
except ProtectedError:
    error_message = "This object can't be deleted!!"
    return JsonResponse(error_message)

【讨论】:

  • 如何在响应中显示导致on_delete 错误的foreignkey
  • @alias51 - 你找到解决方案了吗?
  • 你在删除之前试过vars(instance)吗?
【解决方案2】:

您好,您需要使用异常ProtectedError

try:
    #DELETE STUFF
except ProtectedError:
    #CUSTOM MESSAGE

提升以防止在使用时删除引用的对象 django.db.models.PROTECT。 models.ProtectedError 是 完整性错误。

这里的文档:https://docs.djangoproject.com/fr/1.11/ref/exceptions/#django.db.models.ProtectedError

【讨论】:

  • 如何在响应中显示导致on_delete 错误的foreignkey
猜你喜欢
  • 1970-01-01
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 2018-01-31
  • 1970-01-01
  • 2020-04-19
相关资源
最近更新 更多