python type error是什么意思_Python 报错 TypeError:’DoesNotExist’对象不可调用

公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:codedq,发送下载链接帮助你免费下载!

本博客日IP超过2000,PV 3000 左右,急需赞助商。

极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:codedq,之前的微信号好友位已满,备注:返现

饿了么大量招人,我内推!Java 方向!薪资不设上限,工作年龄不限!工作地点限魔都,可电话面试!简历,发我微信:codedq

所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序

这两年,Python 再次大火。导致越来越多的人学 Python,但是新手学 Python 一般会遇到各种各样的问题。

今天,我又在 Stackoverflow 上看到了一个 Python 非常著名的 TypeError 错误问题:DoesNotExist 对象不可调用。今天我们一起来看看这个问题该如何解决!

TypeError: ‘DoesNotExist’ object is not callable

我们现在看下面这个代码块:

try:

u = User.objects.get(email__iexact=useremail)

except User.DoesNotExist:

...

这段代码并不总是曝出 DoesNotExist 异常,而是随机的报错。

File "/srv/myapp/registration/models.py", line 23, in get_or_create_user

u = User.objects.get(email__iexact=useremail)

File "/usr/local/lib/python2.6/dist-packages/django/db/models/manager.py", line 132, in get

return self.get_query_set().get(*args, **kwargs)

File "/usr/local/lib/python2.6/dist-packages/django/db/models/query.py", line 349, in get

% self.model._meta.object_name)

TypeError: ‘DoesNotExist’ object is not callable

错误详情大概如上所示。正常情况下,这段代码是有效的。但它却总是随机的抛出 DoesNotExist 错误。

在 Stackoverflow 上,有人建议我们将下面的代码进行替换。

try:

do_something()

except User.MultipleObjectsReturned, User.DoesNotExist:

pass

上面的代码改为下面这种方式。

try:

do_something()

except (User.MultipleObjectsReturned, User.DoesNotExist):

pass

如果是 Python 2.6 以上的版本,可以用下面的代码。

except User.MultipleObjectsReturned as User.DoesNotExist:

User.MultipleObjectsReturned 异常的实例覆盖 User.DoesNotExist。

当相同的进程稍后处理一个不同的请求时,你会得到 TypeError 是因为您的代码尝试调用已替换 User.DoesNotExist 的异常实例。

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号1:xmtxtt(5000人已满),微信号2:xttblog(5000人已满),微信号3:codedq(超3800)。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值