python获取类名__qualname__,解决django接口ObjectDoesNotExist异常寻找model的问题

在django项目中,经常使用类似Model.objects.get(id=1)的方法取对象,默认抛出的异常是ObjectDoesNotExist类型,通过try catch可以把异常捕获,获取的异常是Model.DoesNotExist类型,

要获知其类名,可以使用__name__方法

要获知其完整类名,可以使用__qualname__方法

还想要获取定义类的路径,可以使用__module__方法

参考文章: https://blog.csdn.net/NeverLate_gogogo/article/details/107519919

python 复制代码
from django.core.exceptions import ObjectDoesNotExist
from variable.models import Variable
a=ObjectDoesNotExist('变量不存在')
b=Variable.DoesNotExist('变量不存在')
try:
    Variable.objects.get(id=0)
except ObjectDoesNotExist as e:
    c = e

In[3]: a.__class__
Out[3]: django.core.exceptions.ObjectDoesNotExist
In[4]: b.__class__
Out[4]: variable.models.Variable.DoesNotExist
In[5]: c.__class__
Out[5]: variable.models.Variable.DoesNotExist
In[6]: a.__class__.__name__
Out[6]: 'ObjectDoesNotExist'
In[7]: a.__class__.__qualname__
Out[7]: 'ObjectDoesNotExist'
In[8]: a.__class__.__module__
Out[8]: 'django.core.exceptions'
In[9]: b.__class__.__name__
Out[9]: 'DoesNotExist'
In[10]: b.__class__.__qualname__
Out[10]: 'Variable.DoesNotExist'
In[11]: b.__class__.__module__
Out[11]: 'variable.models'
相关推荐
zh路西法12 小时前
【现代控制理论与卡尔曼滤波】从状态空间到Python仿真实现
开发语言·python
Vodka~13 小时前
WSL2 + RViz GPU渲染机械臂
人工智能·python
8Qi813 小时前
hello-agents学习笔记--Memory让Agent拥有记忆
人工智能·python·llm·agent·ai编程·vibecoding
Esaka_Forever13 小时前
Python 完整内存管理机制详解
开发语言·python·spring
Weigang14 小时前
用 LlamaIndex 做 RAG 前,先把 Reader、Index、Retriever 的边界写清楚
人工智能·python·开源
小九九的爸爸14 小时前
前端入门Agent开发,掌握这些Python数据基础就够啦
python·agent
风之所往_14 小时前
Python 3.9 新特性全面总结
python
W是笔名14 小时前
python___容器类型的数据___序列
开发语言·python
aqi0014 小时前
15天学会AI应用开发(十一)从TXT文件构建RAG知识库
人工智能·python·大模型·ai编程·ai应用