diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-05-29 13:09:48 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-05-29 13:09:48 +0000 |
| commit | ddae2ecfe42a4135850a435e1eefc79dfecaa062 (patch) | |
| tree | d6d1e432938cf2fa3594264a7ca287c465e5b201 /django/core/serializers | |
| parent | fa1a0532d35ee5ff342c19821ad290ad48771aa4 (diff) | |
unicode: Merged from trunk up to [5380].
git-svn-id: http://code.djangoproject.com/svn/django/branches/unicode@5381 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/core/serializers')
| -rw-r--r-- | django/core/serializers/python.py | 7 | ||||
| -rw-r--r-- | django/core/serializers/xml_serializer.py | 8 |
2 files changed, 13 insertions, 2 deletions
diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py index 2eb2beeb48..c0d2efab50 100644 --- a/django/core/serializers/python.py +++ b/django/core/serializers/python.py @@ -38,7 +38,12 @@ class Serializer(base.Serializer): def handle_fk_field(self, obj, field): related = getattr(obj, field.name) if related is not None: - related = getattr(related, field.rel.field_name) + if field.rel.field_name == related._meta.pk.name: + # Related to remote object via primary key + related = related._get_pk_val() + else: + # Related to remote object via other field + related = getattr(related, field.rel.field_name) self._current[field.name] = related def handle_m2m_field(self, obj, field): diff --git a/django/core/serializers/xml_serializer.py b/django/core/serializers/xml_serializer.py index 35f18a8589..50bce929b3 100644 --- a/django/core/serializers/xml_serializer.py +++ b/django/core/serializers/xml_serializer.py @@ -83,7 +83,13 @@ class Serializer(base.Serializer): self._start_relational_field(field) related = getattr(obj, field.name) if related is not None: - self.xml.characters(smart_unicode(getattr(related, field.rel.field_name))) + if field.rel.field_name == related._meta.pk.name: + # Related to remote object via primary key + related = related._get_pk_val() + else: + # Related to remote object via other field + related = getattr(related, field.rel.field_name) + self.xml.characters(smart_unicode(related)) else: self.xml.addQuickElement("None") self.xml.endElement("field") |
