Changeset 696 for sandbox/django-fossil/fossil/fields.py
- Timestamp:
- 11/23/10 09:54:11 (3 years ago)
- Files:
-
- 1 modified
-
sandbox/django-fossil/fossil/fields.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
sandbox/django-fossil/fossil/fields.py
r686 r696 106 106 class FossilProxy(object): 107 107 fossil = None 108 _object_fossil = None 108 109 109 110 def __init__(self, fossil=None): … … 117 118 @property 118 119 def object_fossil(self): 119 if not hasattr(self, '_object_fossil'): 120 self._object_fossil = self.fossil.get_object_fossil() 120 if self._object_fossil is None: 121 if isinstance(self.fossil, Fossil): 122 self._object_fossil = self.fossil.get_object_fossil() 123 else: 124 self._object_fossil = DictKeyAttribute(self.fossil) 121 125 122 126 return self._object_fossil 123 127 124 128 def __getattr__(self, name): 125 if name in ('object_fossil','_object_fossil','fossil','get_attr_from_dict'): 126 raise AttributeError 127 128 if isinstance(self.fossil, dict): 129 value = self.fossil[name] 130 131 if isinstance(value, dict): 132 value = DictKeyAttribute(value) 133 134 return value 135 else: 136 return getattr(self.object_fossil.object, name) 129 if name in ('object_fossil','_object_fossil','fossil'): #,'get_attr_from_dict'): 130 raise AttributeError, name 131 132 try: 133 if isinstance(self.fossil, dict): 134 value = self.fossil[name] 135 136 if isinstance(value, dict): 137 value = DictKeyAttribute(value) 138 139 return value 140 else: 141 return getattr(self.object_fossil.object, name) 142 except (AttributeError, KeyError): 143 raise AttributeError, name 137 144 138 145 def __repr__(self):
