Merge branch 'master' of http://github.com/ixc/mongoengine into v0.4

Conflicts:
	mongoengine/fields.py
	mongoengine/queryset.py
This commit is contained in:
Harry Marr 2010-10-17 13:54:16 +01:00
commit d3c2dfbaee
3 changed files with 8 additions and 3 deletions

View File

@ -331,12 +331,12 @@ class ListField(BaseField):
try:
[self.field.validate(item) for item in value]
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):
if op in ('set', 'unset'):
return [self.field.to_mongo(v) for v in value]
return self.field.to_mongo(value)
return [self.field.prepare_query_value(op, v) for v in value]
return self.field.prepare_query_value(op, value)
def lookup_member(self, member_name):
return self.field.lookup_member(member_name)

View File

@ -592,6 +592,10 @@ class QuerySet(object):
mongo_query = {}
for key, value in query.items():
if key == "__raw__":
mongo_query.update(value)
continue
parts = key.split('__')
indices = [(i, p) for i, p in enumerate(parts) if p.isdigit()]
parts = [part for part in parts if not part.isdigit()]

View File

@ -545,6 +545,7 @@ class FieldTest(unittest.TestCase):
user.save()
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[1], link_1)