QuerySet.distinct respects query. Closes #64.

This commit is contained in:
Harry Marr 2010-10-03 15:22:47 +01:00
parent 4012722a8d
commit 556eed0151
2 changed files with 8 additions and 4 deletions

View File

@ -649,7 +649,7 @@ class QuerySet(object):
.. versionadded:: 0.4
"""
return self._collection.distinct(field)
return self._cursor.distinct(field)
def only(self, *fields):
"""Load only a subset of this document's fields. ::

View File

@ -1038,9 +1038,13 @@ class QuerySetTest(unittest.TestCase):
self.Person(name='Mr Orange', age=20).save()
self.Person(name='Mr White', age=20).save()
self.Person(name='Mr Orange', age=30).save()
self.assertEqual(self.Person.objects.distinct('name'),
['Mr Orange', 'Mr White'])
self.assertEqual(self.Person.objects.distinct('age'), [20, 30])
self.Person(name='Mr Pink', age=30).save()
self.assertEqual(set(self.Person.objects.distinct('name')),
set(['Mr Orange', 'Mr White', 'Mr Pink']))
self.assertEqual(set(self.Person.objects.distinct('age')),
set([20, 30]))
self.assertEqual(set(self.Person.objects(age=30).distinct('name')),
set(['Mr Orange', 'Mr Pink']))
def test_custom_manager(self):
"""Ensure that custom QuerySetManager instances work as expected.