diff --git a/django/core/serializers/base.py b/django/core/serializers/base.py index cc29cce6ed..80332dede2 100644 --- a/django/core/serializers/base.py +++ b/django/core/serializers/base.py @@ -368,9 +368,10 @@ def build_instance(Model, data, db): natural_key = obj.natural_key() if natural_key: try: - data[Model._meta.pk.attname] = Model._meta.pk.to_python( - default_manager.db_manager(db).get_by_natural_key(*natural_key).pk + existing = default_manager.db_manager(db).get_by_natural_key( + *natural_key ) + data[Model._meta.pk.attname] = Model._meta.pk.to_python(existing.pk) except Model.DoesNotExist: pass return Model(**data)