From 62efdcb037da9df8fb1a3a29cabb517d49288b5d Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Sat, 4 Feb 2012 18:27:07 +0000 Subject: Fixed #17602 -- Stopped the XML serializer from doing unneeded queries. Thanks, gnosek. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17439 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/serializers/python.py | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'django/core/serializers/python.py') diff --git a/django/core/serializers/python.py b/django/core/serializers/python.py index a68ea21f78..6cdfc9f240 100644 --- a/django/core/serializers/python.py +++ b/django/core/serializers/python.py @@ -45,18 +45,12 @@ class Serializer(base.Serializer): self._current[field.name] = field.value_to_string(obj) def handle_fk_field(self, obj, field): - related = getattr(obj, field.name) - if related is not None: - if self.use_natural_keys and hasattr(related, 'natural_key'): - related = related.natural_key() - else: - 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 = smart_unicode(getattr(related, field.rel.field_name), strings_only=True) - self._current[field.name] = related + if self.use_natural_keys and hasattr(field.rel.to, 'natural_key'): + related = getattr(obj, field.name) + value = related.natural_key() + else: + value = getattr(obj, field.get_attname()) + self._current[field.name] = value def handle_m2m_field(self, obj, field): if field.rel.through._meta.auto_created: -- cgit v1.3