Changeset 1313
- Timestamp:
- 11/20/05 16:18:41 (2 years ago)
- Files:
-
- django/trunk/django/core/meta/__init__.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/core/meta/__init__.py
r1274 r1313 755 755 val = f.get_default() 756 756 else: 757 # Object instance was passed in. 757 758 # Special case: You can pass in "None" for related objects if it's allowed. 758 759 if rel_obj is None and f.null: … … 760 761 else: 761 762 try: 762 val = getattr(rel_obj, f.rel. field_name)763 val = getattr(rel_obj, f.rel.get_related_field().attname) 763 764 except AttributeError: 764 765 raise TypeError, "Invalid value: %r should be a %s instance, not a %s" % (f.name, f.rel.to, type(rel_obj)) … … 893 894 if val is None: 894 895 raise getattr(mod, '%sDoesNotExist' % field_with_rel.rel.to.object_name) 895 retrieved_obj = mod.get_object(**{'%s__exact' % field_with_rel.rel.field_name: val}) 896 other_field = field_with_rel.rel.get_related_field() 897 if other_field.rel: 898 params = {'%s__%s__exact' % (field_with_rel.rel.field_name, other_field.rel.field_name): val} 899 else: 900 params = {'%s__exact'% field_with_rel.rel.field_name: val} 901 retrieved_obj = mod.get_object(**params) 896 902 setattr(self, cache_var, retrieved_obj) 897 903 return getattr(self, cache_var)
