Commit ebcfa9c0 by Roman Krejcik

Query.exists() implemented using count, without fetching data. Added __len__

parent 4f7f66fe
......@@ -101,6 +101,9 @@ class Queryset(object):
def __iter__(self):
return iter(self._fetch())
def __len__(self):
return self._fetch(count=True)
def _fetch(self, count=False):
"""
Return a list of objects matching query, or if count == True return
......@@ -122,8 +125,7 @@ class Queryset(object):
attr, operator = Queryset.extract_filter_operator(name)
if operator is None:
self._where[attr] = parse_value
else:
if operator == 'relatedTo':
elif operator == 'relatedTo':
self._where['$' + operator] = parse_value
else:
try:
......@@ -140,11 +142,10 @@ class Queryset(object):
return self
def count(self):
return self._fetch(count=True)
return len(self)
def exists(self):
results = self._fetch()
return len(results) > 0
return bool(self)
def get(self):
results = self._fetch()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment