Merge branch 'master' of http://github.com/ixc/mongoengine into v0.4
Conflicts: mongoengine/fields.py mongoengine/queryset.py
This commit is contained in:
		| @@ -331,12 +331,12 @@ class ListField(BaseField): | |||||||
|         try: |         try: | ||||||
|             [self.field.validate(item) for item in value] |             [self.field.validate(item) for item in value] | ||||||
|         except Exception, err: |         except Exception, err: | ||||||
|             raise ValidationError('Invalid ListField item (%s)' % str(err)) |             raise ValidationError('Invalid ListField item (%s)' % str(item)) | ||||||
|  |  | ||||||
|     def prepare_query_value(self, op, value): |     def prepare_query_value(self, op, value): | ||||||
|         if op in ('set', 'unset'): |         if op in ('set', 'unset'): | ||||||
|             return [self.field.to_mongo(v) for v in value] |             return [self.field.prepare_query_value(op, v) for v in value] | ||||||
|         return self.field.to_mongo(value) |         return self.field.prepare_query_value(op, value) | ||||||
|  |  | ||||||
|     def lookup_member(self, member_name): |     def lookup_member(self, member_name): | ||||||
|         return self.field.lookup_member(member_name) |         return self.field.lookup_member(member_name) | ||||||
|   | |||||||
| @@ -592,6 +592,10 @@ class QuerySet(object): | |||||||
|  |  | ||||||
|         mongo_query = {} |         mongo_query = {} | ||||||
|         for key, value in query.items(): |         for key, value in query.items(): | ||||||
|  |             if key == "__raw__": | ||||||
|  |                 mongo_query.update(value) | ||||||
|  |                 continue | ||||||
|  |  | ||||||
|             parts = key.split('__') |             parts = key.split('__') | ||||||
|             indices = [(i, p) for i, p in enumerate(parts) if p.isdigit()] |             indices = [(i, p) for i, p in enumerate(parts) if p.isdigit()] | ||||||
|             parts = [part for part in parts if not part.isdigit()] |             parts = [part for part in parts if not part.isdigit()] | ||||||
|   | |||||||
| @@ -545,6 +545,7 @@ class FieldTest(unittest.TestCase): | |||||||
|         user.save() |         user.save() | ||||||
|          |          | ||||||
|         user = User.objects(bookmarks__all=[post_1, link_1]).first() |         user = User.objects(bookmarks__all=[post_1, link_1]).first() | ||||||
|  |         print User.objects(bookmarks__all=[post_1, link_1]).explain() | ||||||
|          |          | ||||||
|         self.assertEqual(user.bookmarks[0], post_1) |         self.assertEqual(user.bookmarks[0], post_1) | ||||||
|         self.assertEqual(user.bookmarks[1], link_1) |         self.assertEqual(user.bookmarks[1], link_1) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user