MCPcopy
hub / github.com/django/django / RawSQL

Class RawSQL

django/db/models/expressions.py:1268–1300  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1266
1267
1268class RawSQL(Expression):
1269 allowed_default = True
1270
1271 def __init__(self, sql, params, output_field=None):
1272 if output_field is None:
1273 output_field = fields.Field()
1274 self.sql, self.params = sql, params
1275 super().__init__(output_field=output_field)
1276
1277 def __repr__(self):
1278 return "{}({}, {})".format(self.__class__.__name__, self.sql, self.params)
1279
1280 def as_sql(self, compiler, connection):
1281 return "(%s)" % self.sql, self.params
1282
1283 def get_group_by_cols(self):
1284 return [self]
1285
1286 def resolve_expression(
1287 self, query=None, allow_joins=True, reuse=None, summarize=False, for_save=False
1288 ):
1289 # Resolve parents fields used in raw SQL.
1290 if query.model:
1291 for parent in query.model._meta.all_parents:
1292 for parent_field in parent._meta.local_fields:
1293 if parent_field.column.lower() in self.sql.lower():
1294 query.resolve_ref(
1295 parent_field.name, allow_joins, reuse, summarize
1296 )
1297 break
1298 return super().resolve_expression(
1299 query, allow_joins, reuse, summarize, for_save
1300 )
1301
1302
1303class Star(Expression):

Callers 15

get_selectMethod · 0.90
_order_by_pairsMethod · 0.90
as_sqlMethod · 0.90
set_valuesMethod · 0.90
test_order_by_rawsqlMethod · 0.90
test_q_annotationMethod · 0.90
test_flattenMethod · 0.90
test_rawsqlMethod · 0.90

Calls

no outgoing calls