Ensure as_pymongo() and to_json honour only() and exclude() (#293)
This commit is contained in:
		| @@ -822,8 +822,7 @@ class QuerySet(object): | ||||
|  | ||||
|     def to_json(self): | ||||
|         """Converts a queryset to JSON""" | ||||
|         queryset = self.clone() | ||||
|         return json_util.dumps(queryset._collection_obj.find(queryset._query)) | ||||
|         return json_util.dumps(self.as_pymongo()) | ||||
|  | ||||
|     def from_json(self, json_data): | ||||
|         """Converts json data to unsaved objects""" | ||||
| @@ -1095,7 +1094,7 @@ class QuerySet(object): | ||||
|                 raise StopIteration | ||||
|             if self._scalar: | ||||
|                 return self._get_scalar(self._document._from_son( | ||||
|                         self._cursor.next())) | ||||
|                                         self._cursor.next())) | ||||
|             if self._as_pymongo: | ||||
|                 return self._get_as_pymongo(self._cursor.next()) | ||||
|  | ||||
| @@ -1370,7 +1369,15 @@ class QuerySet(object): | ||||
|                 new_data = {} | ||||
|                 for key, value in data.iteritems(): | ||||
|                     new_path = '%s.%s' % (path, key) if path else key | ||||
|                     if all_fields or new_path in self.__as_pymongo_fields: | ||||
|  | ||||
|                     if all_fields: | ||||
|                         include_field = True | ||||
|                     elif self._loaded_fields.value == QueryFieldList.ONLY: | ||||
|                         include_field = new_path in self.__as_pymongo_fields | ||||
|                     else: | ||||
|                         include_field = new_path not in self.__as_pymongo_fields | ||||
|  | ||||
|                     if include_field: | ||||
|                         new_data[key] = clean(value, path=new_path) | ||||
|                 data = new_data | ||||
|             elif isinstance(data, list): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user