4040
4141EXECUTOR_CACHE : Dict [
4242 Tuple [str , Optional [str ], str ],
43- Tuple [list , str , list , str , Dict [ str , Callable ], str , Dict [str , str ]],
43+ Tuple [list , str , list , str , str , Dict [str , str ]],
4444] = {}
4545
4646
@@ -78,11 +78,6 @@ def __init__(
7878 self ._prepare_insert_statement (columns_all , has_generated = False )
7979 )
8080
81- self .column_map : Dict [str , Callable [[Any , Any ], Any ]] = {}
82- for column in self .regular_columns_all :
83- field_object = self .model ._meta .fields_map [column ]
84- self .column_map [column ] = field_object .to_db_value
85-
8681 table = self .model ._meta .basetable
8782 basequery = cast (QueryBuilder , self .model ._meta .basequery )
8883 self .delete_query = str (
@@ -95,7 +90,6 @@ def __init__(
9590 self .insert_query ,
9691 self .regular_columns_all ,
9792 self .insert_query_all ,
98- self .column_map ,
9993 self .delete_query ,
10094 self .update_cache ,
10195 )
@@ -106,7 +100,6 @@ def __init__(
106100 self .insert_query ,
107101 self .regular_columns_all ,
108102 self .insert_query_all ,
109- self .column_map ,
110103 self .delete_query ,
111104 self .update_cache ,
112105 ) = EXECUTOR_CACHE [key ]
@@ -186,15 +179,19 @@ def parameter(self, pos: int) -> Parameter:
186179 async def execute_insert (self , instance : "Model" ) -> None :
187180 if not instance ._custom_generated_pk :
188181 values = [
189- self .column_map [field_name ](getattr (instance , field_name ), instance )
182+ self .model ._meta .fields_map [field_name ].to_db_value (
183+ getattr (instance , field_name ), instance
184+ )
190185 for field_name in self .regular_columns
191186 ]
192187 insert_result = await self .db .execute_insert (self .insert_query , values )
193188 await self ._process_insert_result (instance , insert_result )
194189
195190 else :
196191 values = [
197- self .column_map [field_name ](getattr (instance , field_name ), instance )
192+ self .model ._meta .fields_map [field_name ].to_db_value (
193+ getattr (instance , field_name ), instance
194+ )
198195 for field_name in self .regular_columns_all
199196 ]
200197 await self .db .execute_insert (self .insert_query_all , values )
@@ -211,14 +208,18 @@ async def execute_bulk_insert(
211208 if instance ._custom_generated_pk :
212209 values_lists_all .append (
213210 [
214- self .column_map [field_name ](getattr (instance , field_name ), instance )
211+ self .model ._meta .fields_map [field_name ].to_db_value (
212+ getattr (instance , field_name ), instance
213+ )
215214 for field_name in self .regular_columns_all
216215 ]
217216 )
218217 else :
219218 values_lists .append (
220219 [
221- self .column_map [field_name ](getattr (instance , field_name ), instance )
220+ self .model ._meta .fields_map [field_name ].to_db_value (
221+ getattr (instance , field_name ), instance
222+ )
222223 for field_name in self .regular_columns
223224 ]
224225 )
@@ -284,7 +285,7 @@ async def execute_update(
284285 if isinstance (instance_field , Expression ):
285286 expressions [field ] = instance_field
286287 else :
287- value = self .column_map [field ](instance_field , instance )
288+ value = self .model . _meta . fields_map [field ]. to_db_value (instance_field , instance )
288289 values .append (value )
289290 values .append (self .model ._meta .pk .to_db_value (instance .pk , instance ))
290291 return (
0 commit comments