gpt4 book ai didi

django - 如何在Django rest框架中捕获Model.DoesNotExist异常?

转载 作者:行者123 更新时间:2023-12-01 00:16:02 25 4
gpt4 key购买 nike

在Django其余框架中工作。当查询数据库模型并且该数据库模型不存在时,您将遇到如下异常

ModleName.DoesNotExist

该异常将根据型号名称而变化。例如:

查询模型车将提高
Car.DoesNotExist

查询模型飞机将提高
Plane.DoesNotExist

这将导致您无法在一个常见的地方捕获异常的麻烦。因为您不知道Exception的父类。每次查询模型时都必须捕获异常,例如:
    try:
return Car.objects.get(pk=1)
except Car.DoesNotExist:
raise Http404

为什么django设计这样的异常?
是否有可能以其共同血统捕获异常?

最佳答案

您可以使用 ObjectDoesNotExist :

from django.core.exceptions import ObjectDoesNotExist

try:
return Car.objects.get(pk=1)
except ObjectDoesNotExist:
raise Http404
ObjectDoesNotExist将捕获所有模型的 DoesNotExist异常。

Django还提供了 get_object_or_404() 快捷方式,因此您无需显式引发Http404。

关于django - 如何在Django rest框架中捕获Model.DoesNotExist异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52575523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com