gpt4 book ai didi

django - 我从哪里导入 Django 1.10 中的 `DoesNotExist` 异常?

转载 作者:行者123 更新时间:2023-12-03 09:59:30 25 4
gpt4 key购买 nike

我很难弄清楚这一点。我试图在特定对象不存在的情况下捕获异常,但该行

from django.core.exceptions import DoesNotExist

给我 cannot find reference in exeptions.py警告。如果该文件中未指定异常,我在哪里可以找到它?

最佳答案

异常被称为 ObjectDoesNotExists [Django-doc]如果模型未知,则将其导入为:

from django.core.exceptions import ObjectDoesNotExist
Object用于避免与 DoesNotExist 混淆每个模型都有异常(exception)(您可以将 Object 视为所有模型对象的“泛化”)。

但是请注意,如果您知道您查询的模型的模型是什么,最好使用更受限制的异常,例如:
try:
SomeModel.objects.get(pk=14)
except SomeModel.DoesNotExist:
# ... do something
pass

就像 model attributes [Django-doc] 的文档中指定的一样:

Django provides a DoesNotExist exception as an attribute of each model class to identify the class of object that could not be found and to allow you to catch a particular model class with try/except. The exception is a subclass of django.core.exceptions.ObjectDoesNotExist.



这样您就不会 - 偶然地 - 捕获异常,因为无法获取某些(相关)模型。通常是 try 的跨度- except块应该尽可能小,并且异常尽可能“显式”。

关于django - 我从哪里导入 Django 1.10 中的 `DoesNotExist` 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52455835/

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