当前位置: 首页 > news >正文

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

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 = eIn[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'
http://www.lryc.cn/news/121066.html

相关文章:

  • 电流的测量(分流电流表)
  • Leetcode每日一题:23. 合并 K 个升序链表(2023.8.12 C++)
  • 越南的区块链和NFT市场调研
  • MySQL常用语句
  • Mongodb:业务应用(1)
  • 【vue】vue中按钮权限控制:
  • 【博客695】k8s subPathExpr作用
  • 微信小程序中键盘弹起输入框自动跳到键盘上方处理
  • excel将主信息和明细信息整理为多对多(每隔几行空白如何填充)
  • 卷积神经网络实现彩色图像分类 - P2
  • 【博客694】k8s kubelet 状态更新机制
  • 【博客692】grafana如何解决step动态变化时可能出现range duration小于step
  • eNSP:ibgp的破水平切割练习
  • maven是什么?安装+配置
  • 基于长短期神经网络LSTM的多分类代码
  • 利用爬虫爬取图片并保存
  • 设计模式之Bridge模式的C++实现
  • springboot异步任务
  • Flutter父宽度自适应子控件的宽度
  • 什么是 API 安全?学习如何防止攻击和保护数据
  • 简述 TCP 和 UDP 的区别以及优缺点和使用场景?
  • react进阶
  • 使用windows搭建WebDAV服务,并内网穿透公网访问【无公网IP】
  • 科技感响应式管理系统后台登录页ui设计html模板
  • Lombok的使用及注解含义
  • 实时通信应用的开发:Vue.js、Spring Boot 和 WebSocket 整合实践
  • 【C++】C++异常
  • 学生成绩管理系统V2.0
  • 【C++】开源:tinyxml2解析库配置使用
  • 如何使用webpack打包一个库library,使用webpack打包sdk.