Tweaked QuerySetMapper to return the value's value, in line with the changes to flexi...
authorStephen Burrows <stephen.r.burrows@gmail.com>
Fri, 15 Oct 2010 14:43:42 +0000 (10:43 -0400)
committerStephen Burrows <stephen.r.burrows@gmail.com>
Fri, 15 Oct 2010 15:06:04 +0000 (11:06 -0400)
models/base.py
models/fields.py

index 23cccb6..5d09f37 100644 (file)
@@ -175,11 +175,15 @@ class QuerySetMapper(object, DictMixin):
        
        def __getitem__(self, key):
                try:
-                       return self.queryset.get(key__exact=key).value
+                       value = self.queryset.get(key__exact=key).value
                except ObjectDoesNotExist:
                        if self.passthrough is not None:
                                return self.passthrough.__getitem__(key)
                        raise KeyError
+               else:
+                       if value is not None:
+                               return value.value
+                       return value
        
        def keys(self):
                keys = set(self.queryset.values_list('key', flat=True).distinct())
index 0c31026..74a0525 100644 (file)
@@ -129,7 +129,7 @@ class JSONAttribute(AttributeField):
        
        def value_from_object(self, obj):
                try:
-                       return getattr(obj, self.attname).value
+                       return getattr(obj, self.attname)
                except AttributeError:
                        return None
        
@@ -158,7 +158,7 @@ class ForeignKeyAttribute(AttributeField):
        
        def value_from_object(self, obj):
                try:
-                       relobj = super(ForeignKeyAttribute, self).value_from_object(obj).value
+                       relobj = super(ForeignKeyAttribute, self).value_from_object(obj)
                except AttributeError:
                        return None
                return getattr(relobj, 'pk', None)