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'
相关推荐
胖达不服输9 分钟前
「日拱一码」020 机器学习——数据处理
人工智能·python·机器学习·数据处理
吴佳浩16 分钟前
Python入门指南-番外-LLM-Fingerprint(大语言模型指纹):从技术视角看AI开源生态的边界与挑战
python·llm·mcp
吴佳浩1 小时前
Python入门指南-AI模型相似性检测方法:技术原理与实现
人工智能·python·llm
叶 落1 小时前
计算阶梯电费
python·python 基础·python 入门
Python大数据分析@2 小时前
Origin、MATLAB、Python 用于科研作图,哪个最好?
开发语言·python·matlab
编程零零七2 小时前
Python巩固训练——第一天练习题
开发语言·python·python基础·python学习·python练习题
Zonda要好好学习2 小时前
Python入门Day4
java·网络·python
小龙在山东3 小时前
Python 包管理工具 uv
windows·python·uv
weixin_307779133 小时前
批量OCR的GitHub项目
python·github·ocr
孤狼warrior4 小时前
灰色预测模型
人工智能·python·算法·数学建模