summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Chainz <me@adamj.eu>2016-11-24 11:01:36 +0000
committerTim Graham <timograham@gmail.com>2016-11-24 06:01:36 -0500
commit92bbef8b9ecb8e66e578ecf24ca6a6625eb1316a (patch)
treed0143d0fb0a8714fb1f927c91d7e1105c5b32ebb
parentf095b249baf34bbdd4c0b28c9bde05b4d20681be (diff)
Improved the way Model.save() skips the auto_field.
Identity comparison is quicker than isinstance(), and it avoids coupling between Model and AutoField.
-rw-r--r--django/db/models/base.py3
1 files changed, 1 insertions, 2 deletions
diff --git a/django/db/models/base.py b/django/db/models/base.py
index 33c562138a..7c339dda5a 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -19,7 +19,6 @@ from django.db import (
from django.db.models import signals
from django.db.models.constants import LOOKUP_SEP
from django.db.models.deletion import CASCADE, Collector
-from django.db.models.fields import AutoField
from django.db.models.fields.related import (
ForeignObjectRel, OneToOneField, lazy_related_operation, resolve_relation,
)
@@ -899,7 +898,7 @@ class Model(six.with_metaclass(ModelBase)):
fields = meta.local_concrete_fields
if not pk_set:
- fields = [f for f in fields if not isinstance(f, AutoField)]
+ fields = [f for f in fields if f is not meta.auto_field]
update_pk = bool(meta.has_auto_field and not pk_set)
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)