【发布时间】:2014-02-16 07:07:54
【问题描述】:
RealEstateAgent 是一个模型,RealEstateAgent.objects.filter(name = 'better homes') 返回 5 个对象。
我想使用RealEstateAgent.objects.get(name='better homes') 来捕获MultipleObjectsReturned 异常。
我正在尝试这个,但异常没有被捕获。
from django.core.exceptions import MultipleObjectsReturned
try:
RealEstateAgent.objects.get(name='bh')
except MultipleObjectsReturned, e:
print ''
这是回溯:
DoesNotExist Traceback (most recent call last)
<ipython-input-49-9458986408df> in <module>()
1 try:
----> 2 RealEstateAgent.objects.get(name='better homes')
3 except MultipleObjectsReturned, e:
4 print ''
5
/home/dubizzle/webapps/django/src/django/django/db/models/manager.pyc in get(self, *args, **kwargs)
130
131 def get(self, *args, **kwargs):
--> 132 return self.get_query_set().get(*args, **kwargs)
133
134 def get_or_create(self, **kwargs):
/home/dubizzle/webapps/django/src/django/django/db/models/query.pyc in get(self, *args, **kwargs)
347 if not num:
348 raise self.model.DoesNotExist("%s matching query does not exist."
--> 349 % self.model._meta.object_name)
350 raise self.model.MultipleObjectsReturned("get() returned more than one %s -- it returned %s! Lookup parameters were %s"
351 % (self.model._meta.object_name, num, kwargs))
DoesNotExist: RealEstateAgent matching query does not exist.
【问题讨论】:
-
但是您的回溯表明它正在提高
DoesNotExist,而不是MultipleObjectReturns。我错过了什么吗? -
我不明白为什么要提高
DoesNotExist -
你的错误是
matching query does not exist.我会从那里开始 -
奇怪。该查询实际上返回 5 个对象。为什么它会引发
MultipleObjectsReturned? -
@user3030969 显然,查询实际上并没有返回五个对象。
标签: python django django-orm