MCPcopy
hub / github.com/django/django / process_rhs

Method process_rhs

django/db/models/lookups.py:116–138  ·  view source on GitHub ↗
(self, compiler, connection)

Source from the content-addressed store, hash-verified

114 return sql, params
115
116 def process_rhs(self, compiler, connection):
117 value = self.rhs
118 if self.bilateral_transforms:
119 if self.rhs_is_direct_value():
120 # Do not call get_db_prep_lookup here as the value will be
121 # transformed before being used for lookup
122 value = Value(value, output_field=self.lhs.output_field)
123 value = self.apply_bilateral_transforms(value)
124 value = value.resolve_expression(compiler.query)
125 if hasattr(value, "as_sql"):
126 sql, params = compiler.compile(value)
127 if isinstance(value, ColPairs):
128 raise ValueError(
129 "CompositePrimaryKey cannot be used as a lookup value."
130 )
131 # Ensure expression is wrapped in parentheses to respect operator
132 # precedence but avoid double wrapping as it can be misinterpreted
133 # on some backends (e.g. subqueries on SQLite).
134 if not isinstance(value, Value) and sql and sql[0] != "(":
135 sql = "(%s)" % sql
136 return sql, params
137 else:
138 return self.get_db_prep_lookup(value, connection)
139
140 def rhs_is_direct_value(self):
141 return not hasattr(self.rhs, "as_sql")

Callers

nothing calls this directly

Calls 6

rhs_is_direct_valueMethod · 0.95
resolve_expressionMethod · 0.95
get_db_prep_lookupMethod · 0.95
ValueClass · 0.90
compileMethod · 0.45

Tested by

no test coverage detected