From ea31846a19370fb5eec804f1253b728e80e1f2e3 Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Tue, 19 Jun 2012 16:59:18 +0100 Subject: [PATCH] Fixes scalar lookups for primary_key fixes hmarr/mongoengine#519 --- docs/changelog.rst | 1 + mongoengine/queryset.py | 2 -- tests/test_queryset.py | 13 +++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 7e38eae4..c7bc9e6c 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -4,6 +4,7 @@ Changelog Changes in 0.6.X ================ +- Fixes scalar lookups for primary_key - Fixes error with _delta handling DBRefs Changes in 0.6.11 diff --git a/mongoengine/queryset.py b/mongoengine/queryset.py index ed00a73a..3ebbb87e 100644 --- a/mongoengine/queryset.py +++ b/mongoengine/queryset.py @@ -1496,8 +1496,6 @@ class QuerySet(object): def lookup(obj, name): chunks = name.split('__') for chunk in chunks: - if hasattr(obj, '_db_field_map'): - chunk = obj._db_field_map.get(chunk, chunk) obj = getattr(obj, chunk) return obj diff --git a/tests/test_queryset.py b/tests/test_queryset.py index 5078ca28..aa6eabb5 100644 --- a/tests/test_queryset.py +++ b/tests/test_queryset.py @@ -3006,6 +3006,19 @@ class QuerySetTest(unittest.TestCase): self.assertEqual(plist[1], (20, False)) self.assertEqual(plist[2], (30, True)) + def test_scalar_primary_key(self): + + class SettingValue(Document): + key = StringField(primary_key=True) + value = StringField() + + SettingValue.drop_collection() + s = SettingValue(key="test", value="test value") + s.save() + + val = SettingValue.objects.scalar('key', 'value') + self.assertEqual(list(val), [('test', 'test value')]) + def test_scalar_cursor_behaviour(self): """Ensure that a query returns a valid set of results. """