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())
def value_from_object(self, obj):
try:
- return getattr(obj, self.attname).value
+ return getattr(obj, self.attname)
except AttributeError:
return None
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)