This commit is contained in:
parent
37740dc010
commit
63edd16a92
4
AUTHORS
4
AUTHORS
@ -128,4 +128,6 @@ that much better:
|
|||||||
* Peter Teichman
|
* Peter Teichman
|
||||||
* Jakub Kot
|
* Jakub Kot
|
||||||
* Jorge Bastida
|
* Jorge Bastida
|
||||||
* Aleksandr Sorokoumov
|
* Aleksandr Sorokoumov
|
||||||
|
* Yohan Graterol
|
||||||
|
* bool-dev
|
@ -4,6 +4,7 @@ Changelog
|
|||||||
|
|
||||||
Changes in 0.7.10
|
Changes in 0.7.10
|
||||||
=================
|
=================
|
||||||
|
- Resolve field name to db field name when using distinct(#260, #264, #269)
|
||||||
- Added kwargs to doc.save to help interop with django (#223, #270)
|
- Added kwargs to doc.save to help interop with django (#223, #270)
|
||||||
- Fixed cloning querysets in PY3
|
- Fixed cloning querysets in PY3
|
||||||
- Int fields no longer unset in save when changed to 0 (#272)
|
- Int fields no longer unset in save when changed to 0 (#272)
|
||||||
|
@ -1212,8 +1212,11 @@ class QuerySet(object):
|
|||||||
.. versionchanged:: 0.5 - Fixed handling references
|
.. versionchanged:: 0.5 - Fixed handling references
|
||||||
.. versionchanged:: 0.6 - Improved db_field refrence handling
|
.. versionchanged:: 0.6 - Improved db_field refrence handling
|
||||||
"""
|
"""
|
||||||
return self._dereference(self._cursor.distinct(field), 1,
|
try:
|
||||||
name=field, instance=self._document)
|
field = self._fields_to_dbfields([field]).pop()
|
||||||
|
finally:
|
||||||
|
return self._dereference(self._cursor.distinct(field), 1,
|
||||||
|
name=field, instance=self._document)
|
||||||
|
|
||||||
def only(self, *fields):
|
def only(self, *fields):
|
||||||
"""Load only a subset of this document's fields. ::
|
"""Load only a subset of this document's fields. ::
|
||||||
|
@ -2486,6 +2486,25 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
|
|
||||||
self.assertEqual(Foo.objects.distinct("bar"), [bar])
|
self.assertEqual(Foo.objects.distinct("bar"), [bar])
|
||||||
|
|
||||||
|
def test_distinct_handles_db_field(self):
|
||||||
|
"""Ensure that distinct resolves field name to db_field as expected.
|
||||||
|
"""
|
||||||
|
class Product(Document):
|
||||||
|
product_id = IntField(db_field='pid')
|
||||||
|
|
||||||
|
Product.drop_collection()
|
||||||
|
|
||||||
|
Product(product_id=1).save()
|
||||||
|
Product(product_id=2).save()
|
||||||
|
Product(product_id=1).save()
|
||||||
|
|
||||||
|
self.assertEqual(set(Product.objects.distinct('product_id')),
|
||||||
|
set([1, 2]))
|
||||||
|
self.assertEqual(set(Product.objects.distinct('pid')),
|
||||||
|
set([1, 2]))
|
||||||
|
|
||||||
|
Product.drop_collection()
|
||||||
|
|
||||||
def test_custom_manager(self):
|
def test_custom_manager(self):
|
||||||
"""Ensure that custom QuerySetManager instances work as expected.
|
"""Ensure that custom QuerySetManager instances work as expected.
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user