summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorArtem Rizhov <artem.rizhov@gmail.com>2014-10-08 18:27:17 +0300
committerTim Graham <timograham@gmail.com>2014-10-08 14:28:38 -0400
commitca61195827efdf6ec54e8280e4cfd9a34f07b8b4 (patch)
tree2692b2634d6700923dd9910ac61253478bf0ec72 /django
parent9e2e4cb6dda5fa1d4d6b047adbcc215daf4d6ff1 (diff)
Fixed #23555 -- Avoided suppressing IndexError in QuerySet.first() and .last()
Diffstat (limited to 'django')
-rw-r--r--django/db/models/query.py18
1 files changed, 8 insertions, 10 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py
index be5892a371..9371aa14e0 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -516,21 +516,19 @@ class QuerySet(object):
"""
Returns the first object of a query, returns None if no match is found.
"""
- qs = self if self.ordered else self.order_by('pk')
- try:
- return qs[0]
- except IndexError:
- return None
+ objects = list((self if self.ordered else self.order_by('pk'))[:1])
+ if objects:
+ return objects[0]
+ return None
def last(self):
"""
Returns the last object of a query, returns None if no match is found.
"""
- qs = self.reverse() if self.ordered else self.order_by('-pk')
- try:
- return qs[0]
- except IndexError:
- return None
+ objects = list((self.reverse() if self.ordered else self.order_by('-pk'))[:1])
+ if objects:
+ return objects[0]
+ return None
def in_bulk(self, id_list):
"""