Changeset 7171
- Timestamp:
- 02/28/08 07:21:33 (10 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/queryset-refactor/django/db/models/fields/related.py
r7170 r7171 126 126 def __init__(self, related): 127 127 self.related = related 128 self.cache_name = '_%s_cache' % related.field.name 128 129 129 130 def __get__(self, instance, instance_type=None): … … 131 132 raise AttributeError, "%s must be accessed via instance" % self.related.opts.object_name 132 133 133 params = {'%s__pk' % self.related.field.name: instance._get_pk_val()} 134 rel_obj = self.related.model._default_manager.get(**params) 135 return rel_obj 134 try: 135 return getattr(instance, self.cache_name) 136 except AttributeError: 137 params = {'%s__pk' % self.related.field.name: instance._get_pk_val()} 138 rel_obj = self.related.model._default_manager.get(**params) 139 setattr(instance, self.cache_name, rel_obj) 140 return rel_obj 136 141 137 142 def __set__(self, instance, value):
