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

Method execute_insert

tortoise/backends/base/executor.py:293–326  ·  view source on GitHub ↗
(self, instance: Model)

Source from the content-addressed store, hash-verified

291 return await self.db.execute_insert(query, values)
292
293 async def execute_insert(self, instance: Model) -> None:
294 if not instance._custom_generated_pk:
295 has_db_defaults = self._has_db_default_values(instance, self.regular_columns)
296
297 if has_db_defaults:
298 insert_result = await self._execute_insert_dynamic(
299 instance, self.regular_columns, has_generated=True
300 )
301 else:
302 values = [
303 self.model._meta.fields_map[field_name].to_db_value(
304 getattr(instance, field_name), instance
305 )
306 for field_name in self.regular_columns
307 ]
308 insert_result = await self.db.execute_insert(self.insert_query, values)
309 await self._process_insert_result(instance, insert_result)
310
311 else:
312 has_db_defaults = self._has_db_default_values(instance, self.regular_columns_all)
313
314 if has_db_defaults:
315 insert_result = await self._execute_insert_dynamic(
316 instance, self.regular_columns_all, has_generated=False
317 )
318 await self._process_insert_result(instance, insert_result)
319 else:
320 values = [
321 self.model._meta.fields_map[field_name].to_db_value(
322 getattr(instance, field_name), instance
323 )
324 for field_name in self.regular_columns_all
325 ]
326 await self.db.execute_insert(self.insert_query_all, values)
327
328 async def _fetch_db_defaults_after_insert(self, instance: Model) -> None:
329 """Fetch DB-applied default values via SELECT after INSERT.

Callers 1

Calls 4

to_db_valueMethod · 0.45

Tested by

no test coverage detected