MCPcopy
hub / github.com/tortoise/tortoise-orm / _make_query

Method _make_query

tortoise/queryset.py:1193–1242  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1191 )
1192
1193 def _make_query(self) -> None:
1194 # clean tmp records first
1195 self._select_related_idx = []
1196 self._joined_tables = []
1197 table = self.model._meta.basetable
1198 if self._fields_for_select:
1199 # select .only() fields
1200 self.query = self.model._meta.basequery.select()
1201 self._resolve_only(self._fields_for_select)
1202 else:
1203 # select all fields
1204 self.query = copy(self.model._meta.basequery_all_fields) # type:ignore[assignment]
1205 append_item = (
1206 self.model,
1207 len(self.model._meta.db_fields) + len(self._annotations),
1208 table,
1209 self.model,
1210 (None,),
1211 )
1212 self._select_related_idx.append(append_item)
1213 self.resolve_ordering(
1214 self.model,
1215 self.model._meta.basetable,
1216 self._orderings,
1217 self._annotations,
1218 self._fields_for_select,
1219 )
1220 self.resolve_filters()
1221 if self._limit is not None:
1222 self.query._limit = self.query._wrapper_cls(self._limit)
1223 if self._offset is not None:
1224 self.query._offset = self.query._wrapper_cls(self._offset)
1225 if self._distinct:
1226 self.query._distinct = True
1227 if self._select_for_update:
1228 self.query = self.query.for_update(
1229 self._select_for_update_nowait,
1230 self._select_for_update_skip_locked,
1231 self._select_for_update_of,
1232 self._select_for_update_no_key,
1233 )
1234 if self._select_related:
1235 for select_related in self._select_related:
1236 self._join_select_related(select_related)
1237 if self._force_indexes:
1238 self.query._force_indexes = []
1239 self.query = self.query.force_index(*self._force_indexes)
1240 if self._use_indexes:
1241 self.query._use_indexes = []
1242 self.query = self.query.use_index(*self._use_indexes)
1243
1244 def __await__(self) -> Generator[Any, None, list[MODEL]]:
1245 if self._db is None:

Callers 5

explainMethod · 0.95
__await__Method · 0.95
get_sqlMethod · 0.45
as_Method · 0.45

Calls 6

_resolve_onlyMethod · 0.95
_join_select_relatedMethod · 0.95
resolve_orderingMethod · 0.80
resolve_filtersMethod · 0.80
force_indexMethod · 0.80
use_indexMethod · 0.80

Tested by 1