Skip to content

Commit 5896912

Browse files
committed
Refactor.
1 parent 3526af6 commit 5896912

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

django_mongodb/query.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,16 +110,20 @@ def join(self, compiler, connection):
110110
if extra:
111111
columns = []
112112
for expr in extra.leaves():
113-
if hasattr(expr, "lhs") and isinstance(expr.lhs, Col):
114-
columns.append((expr.lhs, len(lhs_fields)))
115-
lhs_fields.append(expr.lhs.as_mql(compiler, connection))
116-
if hasattr(expr, "rhs") and isinstance(expr.rhs, Col):
117-
columns.append((expr.rhs, None))
113+
for hand_side in ["lhs", "rhs"]:
114+
hand_side_value = getattr(expr, hand_side, None)
115+
if isinstance(hand_side_value, Col):
116+
if hand_side_value.alias != self.table_name:
117+
pos = len(lhs_fields)
118+
lhs_fields.append(expr.lhs.as_mql(compiler, connection))
119+
else:
120+
pos = None
121+
columns.append((hand_side_value, pos))
118122
replacements = {}
119123
for col, parent_pos in columns:
120124
# Make all columns in as main collection columns.
121125
column_target = Col(compiler.collection_name, expr.output_field.__class__())
122-
if column_target.alias != self.table_name:
126+
if parent_pos is not None:
123127
column_target.target.db_column = f"${parent_template}{parent_pos}"
124128
column_target.target.set_attributes_from_name(f"${parent_template}{parent_pos}")
125129
replacements[col] = column_target

0 commit comments

Comments
 (0)