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'
相关推荐
Python×CATIA工业智造21 分钟前
Pycatia二次开发基础代码解析:组件识别、选择反转与链接创建技术解析
python·pycharm
小宁爱Python39 分钟前
从零搭建 RAG 智能问答系统 6:Text2SQL 与工作流实现数据库查询
数据库·人工智能·python·django
m0_748241231 小时前
Java注解与反射实现日志与校验
java·开发语言·python
可触的未来,发芽的智生1 小时前
追根索源:换不同的词嵌入(词向量生成方式不同,但词与词关系接近),会出现什么结果?
javascript·人工智能·python·神经网络·自然语言处理
hu_nil2 小时前
LLMOps-第十一周作业
python·vllm
阿Q说代码2 小时前
IPIDEA实现数据采集自动化:高效自动化采集方案
运维·python·自动化·数据采集
大模型真好玩3 小时前
OCR技术简史: 从深度学习到大模型,最强OCR大模型花落谁家
人工智能·python·deepseek
AI量化投资实验室3 小时前
年化591%,回撤仅7%的策略,支持订阅信号|基于AgentScope开发金融多智能体,附python代码
开发语言·python·金融
CaracalTiger3 小时前
告别云端依赖!ComfyUI本地化视频生成实战教程+cpolar实战
python·gpt·开源·aigc·ai编程·1024程序员节·ai-native
追风少年ii4 小时前
脚本更新--CosMx、Xenium的邻域通讯分析(R版本)
linux·python·r语言·r·单细胞·培训