Avoid to open all documents from cursors in an if stmt

Using a cursos in an if statement:

cursor = Collection.objects

	if cursor:
		(...)

Will open all documents, because there are not an __nonzero__ method.
This change check only one document (if present) and returns True or False.
This commit is contained in:
Jonathan Prates
2014-05-27 16:33:38 -03:00
parent f099dc6a37
commit 3faf3c84be
2 changed files with 32 additions and 0 deletions

View File

@@ -154,6 +154,15 @@ class BaseQuerySet(object):
def __iter__(self):
raise NotImplementedError
def __nonzero__(self):
""" Avoid to open all records in an if stmt """
for value in self:
self.rewind()
return True
return False
# Core functions
def all(self):