summaryrefslogtreecommitdiff
path: root/django/db
diff options
context:
space:
mode:
authorSimon Charette <charette.s@gmail.com>2022-08-30 06:22:33 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-08-30 06:59:55 +0200
commit60613ef5162eefbe82ea48f7de6a0c55f9cb8a4e (patch)
treed1ff61fc15c1d47482a4d4f37546209873c130c4 /django/db
parent411a6ec93a9b21e5ed1e9fc05b34f021288cd10c (diff)
Merged nested if statements in select_related_descend().
Diffstat (limited to 'django/db')
-rw-r--r--django/db/models/query_utils.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/django/db/models/query_utils.py b/django/db/models/query_utils.py
index d566cc1883..6e82edb6e7 100644
--- a/django/db/models/query_utils.py
+++ b/django/db/models/query_utils.py
@@ -285,14 +285,16 @@ def select_related_descend(field, restricted, requested, load_fields, reverse=Fa
return False
if not restricted and field.null:
return False
- if load_fields:
- if field.attname not in load_fields:
- if restricted and field.name in requested:
- msg = (
- "Field %s.%s cannot be both deferred and traversed using "
- "select_related at the same time."
- ) % (field.model._meta.object_name, field.name)
- raise FieldError(msg)
+ if (
+ restricted
+ and load_fields
+ and field.name in requested
+ and field.attname not in load_fields
+ ):
+ raise FieldError(
+ f"Field {field.model._meta.object_name}.{field.name} cannot be both "
+ "deferred and traversed using select_related at the same time."
+ )
return True