Merge pull request #1944 from erdenezul/deprecation_warning_pymongo37
Use insert_one instead of deprecated one #1899
This commit is contained in:
		@@ -5,7 +5,9 @@ Changelog
 | 
				
			|||||||
Development
 | 
					Development
 | 
				
			||||||
===========
 | 
					===========
 | 
				
			||||||
- (Fill this out as you fix issues and develop your features).
 | 
					- (Fill this out as you fix issues and develop your features).
 | 
				
			||||||
=======
 | 
					- Remove deprecated `save()` method and used `insert_one()` #1899
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					=================
 | 
				
			||||||
Changes in 0.16.0
 | 
					Changes in 0.16.0
 | 
				
			||||||
=================
 | 
					=================
 | 
				
			||||||
- Various improvements to the doc
 | 
					- Various improvements to the doc
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,9 @@ from mongoengine.base import (BaseDict, BaseDocument, BaseList,
 | 
				
			|||||||
                              TopLevelDocumentMetaclass, get_document)
 | 
					                              TopLevelDocumentMetaclass, get_document)
 | 
				
			||||||
from mongoengine.common import _import_class
 | 
					from mongoengine.common import _import_class
 | 
				
			||||||
from mongoengine.connection import DEFAULT_CONNECTION_NAME, get_db
 | 
					from mongoengine.connection import DEFAULT_CONNECTION_NAME, get_db
 | 
				
			||||||
from mongoengine.context_managers import switch_collection, switch_db
 | 
					from mongoengine.context_managers import (set_write_concern,
 | 
				
			||||||
 | 
					                                          switch_collection,
 | 
				
			||||||
 | 
					                                          switch_db)
 | 
				
			||||||
from mongoengine.errors import (InvalidDocumentError, InvalidQueryError,
 | 
					from mongoengine.errors import (InvalidDocumentError, InvalidQueryError,
 | 
				
			||||||
                                SaveConditionError)
 | 
					                                SaveConditionError)
 | 
				
			||||||
from mongoengine.python_support import IS_PYMONGO_3
 | 
					from mongoengine.python_support import IS_PYMONGO_3
 | 
				
			||||||
@@ -426,11 +428,18 @@ class Document(six.with_metaclass(TopLevelDocumentMetaclass, BaseDocument)):
 | 
				
			|||||||
        Helper method, should only be used inside save().
 | 
					        Helper method, should only be used inside save().
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        collection = self._get_collection()
 | 
					        collection = self._get_collection()
 | 
				
			||||||
 | 
					        with set_write_concern(collection, write_concern) as wc_collection:
 | 
				
			||||||
            if force_insert:
 | 
					            if force_insert:
 | 
				
			||||||
            return collection.insert(doc, **write_concern)
 | 
					                return wc_collection.insert_one(doc).inserted_id
 | 
				
			||||||
 | 
					            # insert_one will provoke UniqueError alongside save does not
 | 
				
			||||||
 | 
					            # therefore, it need to catch and call replace_one.
 | 
				
			||||||
 | 
					            if '_id' in doc:
 | 
				
			||||||
 | 
					                raw_object = wc_collection.find_one_and_replace(
 | 
				
			||||||
 | 
					                    {'_id': doc['_id']}, doc)
 | 
				
			||||||
 | 
					                if raw_object:
 | 
				
			||||||
 | 
					                    return doc['_id']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        object_id = collection.save(doc, **write_concern)
 | 
					            object_id = wc_collection.insert_one(doc).inserted_id
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # In PyMongo 3.0, the save() call calls internally the _update() call
 | 
					        # In PyMongo 3.0, the save() call calls internally the _update() call
 | 
				
			||||||
        # but they forget to return the _id value passed back, therefore getting it back here
 | 
					        # but they forget to return the _id value passed back, therefore getting it back here
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user