use each modifier only with #1673
This commit is contained in:
parent
a1494c4c93
commit
9ab856e186
@ -344,8 +344,6 @@ def update(_doc_cls=None, **update):
|
|||||||
if not isinstance(value, (set, tuple, list)):
|
if not isinstance(value, (set, tuple, list)):
|
||||||
value = [value]
|
value = [value]
|
||||||
value = {key: {'$each': value, '$position': position}}
|
value = {key: {'$each': value, '$position': position}}
|
||||||
elif isinstance(value, list):
|
|
||||||
value = {key: {'$each': value}}
|
|
||||||
else:
|
else:
|
||||||
value = {key: value}
|
value = {key: value}
|
||||||
else:
|
else:
|
||||||
|
@ -3183,6 +3183,17 @@ class InstanceTest(unittest.TestCase):
|
|||||||
blog.reload()
|
blog.reload()
|
||||||
self.assertEqual(blog.tags, ['mongodb', 'code', 'python'])
|
self.assertEqual(blog.tags, ['mongodb', 'code', 'python'])
|
||||||
|
|
||||||
|
def test_push_nested_list(self):
|
||||||
|
"""Ensure that push update works in nested list"""
|
||||||
|
class BlogPost(Document):
|
||||||
|
slug = StringField()
|
||||||
|
tags = ListField()
|
||||||
|
|
||||||
|
blog = BlogPost(slug="test").save()
|
||||||
|
blog.update(push__tags=["value1", 123])
|
||||||
|
blog.reload()
|
||||||
|
self.assertEqual(blog.tags, [["value1", 123]])
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
@ -1929,6 +1929,21 @@ class QuerySetTest(unittest.TestCase):
|
|||||||
post.reload()
|
post.reload()
|
||||||
self.assertEqual(post.tags, ['scala', 'mongodb', 'python', 'java'])
|
self.assertEqual(post.tags, ['scala', 'mongodb', 'python', 'java'])
|
||||||
|
|
||||||
|
def test_update_push_list_of_list(self):
|
||||||
|
"""Ensure that the 'push' update operation works in the list of list
|
||||||
|
"""
|
||||||
|
class BlogPost(Document):
|
||||||
|
slug = StringField()
|
||||||
|
tags = ListField()
|
||||||
|
|
||||||
|
BlogPost.drop_collection()
|
||||||
|
|
||||||
|
post = BlogPost(slug="test").save()
|
||||||
|
|
||||||
|
BlogPost.objects.filter(slug="test").update(push__tags=["value1", 123])
|
||||||
|
post.reload()
|
||||||
|
self.assertEqual(post.tags, [["value1", 123]])
|
||||||
|
|
||||||
def test_update_push_and_pull_add_to_set(self):
|
def test_update_push_and_pull_add_to_set(self):
|
||||||
"""Ensure that the 'pull' update operation works correctly.
|
"""Ensure that the 'pull' update operation works correctly.
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user