Better BaseDocument equality check when not saved
When 2 instances of a Document had id = None they would be considered equal unless an __eq__ were implemented. We now return False for such case. It now behaves more similar to Django's ORM.
This commit is contained in:
		| @@ -241,10 +241,12 @@ class BaseDocument(object): | ||||
|         return txt_type('%s object' % self.__class__.__name__) | ||||
|  | ||||
|     def __eq__(self, other): | ||||
|         if isinstance(other, self.__class__) and hasattr(other, 'id'): | ||||
|         if isinstance(other, self.__class__) and hasattr(other, 'id') and other.id is not None: | ||||
|             return self.id == other.id | ||||
|         if isinstance(other, DBRef): | ||||
|             return self._get_collection_name() == other.collection and self.id == other.id | ||||
|         if self.id is None: | ||||
|             return self is other | ||||
|         return False | ||||
|  | ||||
|     def __ne__(self, other): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user