summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHasan Ramezani <hasan.r67@gmail.com>2019-10-11 07:56:02 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-10-11 08:07:07 +0200
commite1ae2b00504ba30481285b2bd767d1ad561bf4be (patch)
treeda9e3c05c7bf53019d496cef4403bcd0f2ee6b64
parented112fadc1cfa400dbee6080bf82fd7536ea4c72 (diff)
Refs #30854 -- Moved local_setter() outside the loop in SQLCompiler.get_related_selections().
-rw-r--r--django/db/models/sql/compiler.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/django/db/models/sql/compiler.py b/django/db/models/sql/compiler.py
index 85adbfdcd9..f475b82921 100644
--- a/django/db/models/sql/compiler.py
+++ b/django/db/models/sql/compiler.py
@@ -890,6 +890,12 @@ class SQLCompiler:
select, model._meta, alias, cur_depth + 1,
next, restricted)
get_related_klass_infos(klass_info, next_klass_infos)
+
+ def local_setter(obj, from_obj):
+ # Set a reverse fk object when relation is non-empty.
+ if from_obj:
+ f.remote_field.set_cached_value(from_obj, obj)
+
for name in list(requested):
# Filtered relations work only on the topmost level.
if cur_depth > 1:
@@ -901,11 +907,6 @@ class SQLCompiler:
alias = joins[-1]
from_parent = issubclass(model, opts.model) and model is not opts.model
- def local_setter(obj, from_obj):
- # Set a reverse fk object when relation is non-empty.
- if from_obj:
- f.remote_field.set_cached_value(from_obj, obj)
-
def remote_setter(obj, from_obj):
setattr(from_obj, name, obj)
klass_info = {