Merge pull request #1998 from bagerard/Fix_update_full_result_documentation
Fix documentation of Queryset.update regarding full_result #1995
This commit is contained in:
		| @@ -7,6 +7,7 @@ Development | ||||
| - (Fill this out as you fix issues and develop your features). | ||||
| - Fix .only() working improperly after using .count() of the same instance of QuerySet | ||||
| - POTENTIAL BREAKING CHANGE: All result fields are now passed, including internal fields (_cls, _id) when using `QuerySet.as_pymongo` #1976 | ||||
| - Document a BREAKING CHANGE introduced in 0.15.3 and not reported at that time (#1995) | ||||
| - Fix InvalidStringData error when using modify on a BinaryField #1127 | ||||
| - DEPRECATION: `EmbeddedDocument.save` & `.reload` are marked as deprecated and will be removed in a next version of mongoengine #1552 | ||||
|  | ||||
| @@ -66,6 +67,7 @@ Changes in 0.16.0 | ||||
|  | ||||
| Changes in 0.15.3 | ||||
| ================= | ||||
| -  BREAKING CHANGES: `Queryset.update/update_one` methods now returns an UpdateResult when `full_result=True` is provided and no longer a dict (relates to #1491) | ||||
| -  Subfield resolve error in generic_emdedded_document query #1651 #1652 | ||||
| -  use each modifier only with $position #1673 #1675 | ||||
| -  Improve LazyReferenceField and GenericLazyReferenceField with nested fields #1704 | ||||
|   | ||||
| @@ -498,11 +498,12 @@ class BaseQuerySet(object): | ||||
|             ``save(..., write_concern={w: 2, fsync: True}, ...)`` will | ||||
|             wait until at least two servers have recorded the write and | ||||
|             will force an fsync on the primary server. | ||||
|         :param full_result: Return the full result dictionary rather than just the number | ||||
|             updated, e.g. return | ||||
|             ``{'n': 2, 'nModified': 2, 'ok': 1.0, 'updatedExisting': True}``. | ||||
|         :param full_result: Return the associated ``pymongo.UpdateResult`` rather than just the number | ||||
|             updated items | ||||
|         :param update: Django-style update keyword arguments | ||||
|  | ||||
|         :returns the number of updated documents (unless ``full_result`` is True) | ||||
|  | ||||
|         .. versionadded:: 0.2 | ||||
|         """ | ||||
|         if not update and not upsert: | ||||
| @@ -566,7 +567,7 @@ class BaseQuerySet(object): | ||||
|             document = self._document.objects.with_id(atomic_update.upserted_id) | ||||
|         return document | ||||
|  | ||||
|     def update_one(self, upsert=False, write_concern=None, **update): | ||||
|     def update_one(self, upsert=False, write_concern=None, full_result=False, **update): | ||||
|         """Perform an atomic update on the fields of the first document | ||||
|         matched by the query. | ||||
|  | ||||
| @@ -577,12 +578,19 @@ class BaseQuerySet(object): | ||||
|             ``save(..., write_concern={w: 2, fsync: True}, ...)`` will | ||||
|             wait until at least two servers have recorded the write and | ||||
|             will force an fsync on the primary server. | ||||
|         :param full_result: Return the associated ``pymongo.UpdateResult`` rather than just the number | ||||
|             updated items | ||||
|         :param update: Django-style update keyword arguments | ||||
|  | ||||
|             full_result | ||||
|         :returns the number of updated documents (unless ``full_result`` is True) | ||||
|         .. versionadded:: 0.2 | ||||
|         """ | ||||
|         return self.update( | ||||
|             upsert=upsert, multi=False, write_concern=write_concern, **update) | ||||
|             upsert=upsert, | ||||
|             multi=False, | ||||
|             write_concern=write_concern, | ||||
|             full_result=full_result, | ||||
|             **update) | ||||
|  | ||||
|     def modify(self, upsert=False, full_response=False, remove=False, new=False, **update): | ||||
|         """Update and return the updated document. | ||||
|   | ||||
| @@ -2233,6 +2233,19 @@ class QuerySetTest(unittest.TestCase): | ||||
|         bar.reload() | ||||
|         self.assertEqual(len(bar.foos), 0) | ||||
|  | ||||
|     def test_update_one_check_return_with_full_result(self): | ||||
|         class BlogTag(Document): | ||||
|             name = StringField(required=True) | ||||
|  | ||||
|         BlogTag.drop_collection() | ||||
|  | ||||
|         BlogTag(name='garbage').save() | ||||
|         default_update = BlogTag.objects.update_one(name='new') | ||||
|         self.assertEqual(default_update, 1) | ||||
|  | ||||
|         full_result_update = BlogTag.objects.update_one(name='new', full_result=True) | ||||
|         self.assertIsInstance(full_result_update, UpdateResult) | ||||
|  | ||||
|     def test_update_one_pop_generic_reference(self): | ||||
|  | ||||
|         class BlogTag(Document): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user