summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnssi Kääriäinen <akaariai@gmail.com>2012-04-20 11:09:32 +0000
committerAnssi Kääriäinen <akaariai@gmail.com>2012-04-20 11:09:32 +0000
commitd5b93d3281fe93cbef5de84a52001f64dbd839bd (patch)
tree3d445402e99f79f717602a6bc63561cd23ccdee8
parenta901654a96dd4287ab3a700aff86bcac4b49f32a (diff)
Fixed #10494 -- Added kwargs to QuerySet.get() error message in the case no objects were found.
Thanks brondsem for the report, Szymon Pyzalski for the patch and oinopion for review. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17917 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/db/models/query.py12
-rw-r--r--docs/intro/overview.txt2
-rw-r--r--docs/intro/tutorial01.txt2
-rw-r--r--tests/modeltests/basic/tests.py18
4 files changed, 24 insertions, 10 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py
index efa3e45e9f..3d4fd17924 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -363,10 +363,14 @@ class QuerySet(object):
if num == 1:
return clone._result_cache[0]
if not num:
- raise self.model.DoesNotExist("%s matching query does not exist."
- % self.model._meta.object_name)
- raise self.model.MultipleObjectsReturned("get() returned more than one %s -- it returned %s! Lookup parameters were %s"
- % (self.model._meta.object_name, num, kwargs))
+ raise self.model.DoesNotExist(
+ "%s matching query does not exist. "
+ "Lookup parameters were %s" %
+ (self.model._meta.object_name, kwargs))
+ raise self.model.MultipleObjectsReturned(
+ "get() returned more than one %s -- it returned %s! "
+ "Lookup parameters were %s" %
+ (self.model._meta.object_name, num, kwargs))
def create(self, **kwargs):
"""
diff --git a/docs/intro/overview.txt b/docs/intro/overview.txt
index 4f97fef44c..bd2fdfdb6c 100644
--- a/docs/intro/overview.txt
+++ b/docs/intro/overview.txt
@@ -93,7 +93,7 @@ access your data. The API is created on the fly, no code generation necessary::
>>> Reporter.objects.get(id=2)
Traceback (most recent call last):
...
- DoesNotExist: Reporter matching query does not exist.
+ DoesNotExist: Reporter matching query does not exist. Lookup parameters were {'id': 2}
# Create an article.
>>> from datetime import datetime
diff --git a/docs/intro/tutorial01.txt b/docs/intro/tutorial01.txt
index 7575afd454..d8258c00f8 100644
--- a/docs/intro/tutorial01.txt
+++ b/docs/intro/tutorial01.txt
@@ -664,7 +664,7 @@ Save these changes and start a new Python interactive shell by running
>>> Poll.objects.get(id=2)
Traceback (most recent call last):
...
- DoesNotExist: Poll matching query does not exist.
+ DoesNotExist: Poll matching query does not exist. Lookup parameters were {'id': 2}
# Lookup by a primary key is the most common case, so Django provides a
# shortcut for primary-key exact lookups.
diff --git a/tests/modeltests/basic/tests.py b/tests/modeltests/basic/tests.py
index f9141dc692..14d35cc644 100644
--- a/tests/modeltests/basic/tests.py
+++ b/tests/modeltests/basic/tests.py
@@ -83,14 +83,23 @@ class ModelTest(TestCase):
# parameters don't match any object.
self.assertRaisesRegexp(
ObjectDoesNotExist,
- "Article matching query does not exist.",
+ "Article matching query does not exist. Lookup parameters were "
+ "{'id__exact': 2000}",
Article.objects.get,
id__exact=2000,
)
-
+ # To avoid dict-ordering related errors check only one lookup
+ # in single assert.
+ self.assertRaisesRegexp(
+ ObjectDoesNotExist,
+ ".*'pub_date__year': 2005.*",
+ Article.objects.get,
+ pub_date__year=2005,
+ pub_date__month=8,
+ )
self.assertRaisesRegexp(
ObjectDoesNotExist,
- "Article matching query does not exist.",
+ ".*'pub_date__month': 8.*",
Article.objects.get,
pub_date__year=2005,
pub_date__month=8,
@@ -98,7 +107,8 @@ class ModelTest(TestCase):
self.assertRaisesRegexp(
ObjectDoesNotExist,
- "Article matching query does not exist.",
+ "Article matching query does not exist. Lookup parameters were "
+ "{'pub_date__week_day': 6}",
Article.objects.get,
pub_date__week_day=6,
)