Skip to content

Commit e4f6c6b

Browse files
committed
Refactor.
1 parent a65a92e commit e4f6c6b

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
@@ -114,16 +114,20 @@ def join(self, compiler, connection):
114114
if extra:
115115
columns = []
116116
for expr in extra.leaves():
117-
if hasattr(expr, "lhs") and isinstance(expr.lhs, Col):
118-
columns.append((expr.lhs, len(lhs_fields)))
119-
lhs_fields.append(expr.lhs.as_mql(compiler, connection))
120-
if hasattr(expr, "rhs") and isinstance(expr.rhs, Col):
121-
columns.append((expr.rhs, None))
117+
for hand_side in ["lhs", "rhs"]:
118+
hand_side_value = getattr(expr, hand_side, None)
119+
if isinstance(hand_side_value, Col):
120+
if hand_side_value.alias != self.table_name:
121+
pos = len(lhs_fields)
122+
lhs_fields.append(expr.lhs.as_mql(compiler, connection))
123+
else:
124+
pos = None
125+
columns.append((hand_side_value, pos))
122126
replacements = {}
123127
for col, parent_pos in columns:
124128
# Make all columns in as main collection columns.
125129
column_target = Col(compiler.collection_name, expr.output_field.__class__())
126-
if column_target.alias != self.table_name:
130+
if parent_pos is not None:
127131
column_target.target.db_column = f"${parent_template}{parent_pos}"
128132
column_target.target.set_attributes_from_name(f"${parent_template}{parent_pos}")
129133
replacements[col] = column_target

0 commit comments

Comments
 (0)