Fixed MapField lookup for fields without declared lookups (MongoEngine/mongoengine#46)
This commit is contained in:
parent
f23a976bea
commit
2420b5e937
@ -5,6 +5,7 @@ Changelog
|
|||||||
Changes in 0.6.X
|
Changes in 0.6.X
|
||||||
================
|
================
|
||||||
|
|
||||||
|
- Fixed MapField lookup for fields without declared lookups (MongoEngine/mongoengine#46)
|
||||||
- Fixed BinaryField python value issue (MongoEngine/mongoengine#48)
|
- Fixed BinaryField python value issue (MongoEngine/mongoengine#48)
|
||||||
- Fixed SequenceField non numeric value lookup (MongoEngine/mongoengine#41)
|
- Fixed SequenceField non numeric value lookup (MongoEngine/mongoengine#41)
|
||||||
- Fixed queryset manager issue (MongoEngine/mongoengine#52)
|
- Fixed queryset manager issue (MongoEngine/mongoengine#52)
|
||||||
|
@ -641,7 +641,7 @@ class QuerySet(object):
|
|||||||
from mongoengine.fields import ReferenceField, GenericReferenceField
|
from mongoengine.fields import ReferenceField, GenericReferenceField
|
||||||
if isinstance(field, (ReferenceField, GenericReferenceField)):
|
if isinstance(field, (ReferenceField, GenericReferenceField)):
|
||||||
raise InvalidQueryError('Cannot perform join in mongoDB: %s' % '__'.join(parts))
|
raise InvalidQueryError('Cannot perform join in mongoDB: %s' % '__'.join(parts))
|
||||||
if getattr(field, 'field', None):
|
if hasattr(getattr(field, 'field', None), 'lookup_member'):
|
||||||
new_field = field.field.lookup_member(field_name)
|
new_field = field.field.lookup_member(field_name)
|
||||||
else:
|
else:
|
||||||
# Look up subfield on the previous field
|
# Look up subfield on the previous field
|
||||||
|
@ -929,6 +929,19 @@ class FieldTest(unittest.TestCase):
|
|||||||
doc = self.db.test.find_one()
|
doc = self.db.test.find_one()
|
||||||
self.assertEqual(doc['x']['DICTIONARY_KEY']['i'], 2)
|
self.assertEqual(doc['x']['DICTIONARY_KEY']['i'], 2)
|
||||||
|
|
||||||
|
def test_map_field_lookup(self):
|
||||||
|
"""Ensure MapField lookups succeed on Fields without a lookup method"""
|
||||||
|
|
||||||
|
class Log(Document):
|
||||||
|
name = StringField()
|
||||||
|
visited = MapField(DateTimeField())
|
||||||
|
|
||||||
|
Log.drop_collection()
|
||||||
|
Log(name="wilson", visited={'friends': datetime.now()}).save()
|
||||||
|
|
||||||
|
self.assertEqual(1, Log.objects(
|
||||||
|
visited__friends__exists=True).count())
|
||||||
|
|
||||||
def test_embedded_db_field(self):
|
def test_embedded_db_field(self):
|
||||||
|
|
||||||
class Embedded(EmbeddedDocument):
|
class Embedded(EmbeddedDocument):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user