Added rewind to QuerySet, which is implicitly called when iteration finishes

This commit is contained in:
Harry Marr
2010-03-08 22:15:40 +00:00
parent 48e313fb44
commit ac3c857e1a
2 changed files with 24 additions and 3 deletions

View File

@@ -416,9 +416,18 @@ class QuerySet(object):
def next(self):
"""Wrap the result in a :class:`~mongoengine.Document` object.
"""
if self._limit == 0:
raise StopIteration
return self._document._from_son(self._cursor.next())
try:
if self._limit == 0:
raise StopIteration
return self._document._from_son(self._cursor.next())
except StopIteration, e:
self.rewind()
raise e
def rewind(self):
"""Rewind the cursor to its unevaluated state.
"""
self._cursor.rewind()
def count(self):
"""Count the selected elements in the query.