fix BaseQuerySet.fields when mixing exclusion/inclusion with complex values like $slice (#1452)

This commit is contained in:
Stefan Wójcik
2016-12-28 11:40:57 -05:00
committed by GitHub
parent f4e1d80a87
commit c6cc013617
2 changed files with 24 additions and 1 deletions

View File

@@ -141,6 +141,16 @@ class OnlyExcludeAllTest(unittest.TestCase):
self.assertEqual(qs._loaded_fields.as_dict(),
{'b': {'$slice': 5}})
def test_mix_slice_with_other_fields(self):
class MyDoc(Document):
a = ListField()
b = ListField()
c = ListField()
qs = MyDoc.objects.fields(a=1, b=0, slice__c=2)
self.assertEqual(qs._loaded_fields.as_dict(),
{'c': {'$slice': 2}, 'a': 1})
def test_only(self):
"""Ensure that QuerySet.only only returns the requested fields.
"""