From 3591593ac73dbd0a2275e5335b0ceaace232048d Mon Sep 17 00:00:00 2001 From: Harry Marr Date: Sun, 17 Oct 2010 13:55:48 +0100 Subject: [PATCH] Fixed GenericReferenceField query issue --- mongoengine/fields.py | 2 +- mongoengine/queryset.py | 3 --- tests/fields.py | 1 - 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/mongoengine/fields.py b/mongoengine/fields.py index f65ca15d..9fc50d68 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -509,7 +509,7 @@ class GenericReferenceField(BaseField): return {'_cls': document.__class__.__name__, '_ref': ref} def prepare_query_value(self, op, value): - return self.to_mongo(value)['_ref'] + return self.to_mongo(value) class BinaryField(BaseField): diff --git a/mongoengine/queryset.py b/mongoengine/queryset.py index a3d4c544..06524dcd 100644 --- a/mongoengine/queryset.py +++ b/mongoengine/queryset.py @@ -624,9 +624,6 @@ class QuerySet(object): # 'in', 'nin' and 'all' require a list of values value = [field.prepare_query_value(op, v) for v in value] - if field.__class__.__name__ == 'GenericReferenceField': - parts.append('_ref') - # if op and op not in match_operators: if op: if op in geo_operators: diff --git a/tests/fields.py b/tests/fields.py index 1df484bf..e30f843e 100644 --- a/tests/fields.py +++ b/tests/fields.py @@ -545,7 +545,6 @@ 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)