summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
Diffstat (limited to 'django')
-rw-r--r--django/db/models/base.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/django/db/models/base.py b/django/db/models/base.py
index fe3d84677a..0b8425aa85 100644
--- a/django/db/models/base.py
+++ b/django/db/models/base.py
@@ -1708,7 +1708,11 @@ class Model(metaclass=ModelBase):
fld = None
for part in field.split(LOOKUP_SEP):
try:
- fld = _cls._meta.get_field(part)
+ # pk is an alias that won't be found by opts.get_field.
+ if part == 'pk':
+ fld = _cls._meta.pk
+ else:
+ fld = _cls._meta.get_field(part)
if fld.is_relation:
_cls = fld.get_path_info()[-1].to_opts.model
else: