Index: /home/david/Workspace/fairford/src/django/core/serializers/python.py =================================================================== --- /home/david/Workspace/fairford/src/django/core/serializers/python.py (revision 9244) +++ /home/david/Workspace/fairford/src/django/core/serializers/python.py (working copy) @@ -45,7 +45,7 @@ related = related._get_pk_val() else: # Related to remote object via other field - related = getattr(related, field.rel.field_name) + related = getattr(related, field.rel.get_related_field().attname) self._current[field.name] = smart_unicode(related, strings_only=True) def handle_m2m_field(self, obj, field): Index: /home/david/Workspace/fairford/src/django/core/serializers/xml_serializer.py =================================================================== --- /home/david/Workspace/fairford/src/django/core/serializers/xml_serializer.py (revision 9244) +++ /home/david/Workspace/fairford/src/django/core/serializers/xml_serializer.py (working copy) @@ -88,7 +88,7 @@ related = related._get_pk_val() else: # Related to remote object via other field - related = getattr(related, field.rel.field_name) + related = getattr(related, field.rel.get_related_field().attname) self.xml.characters(smart_unicode(related)) else: self.xml.addQuickElement("None")