MCPcopy
hub / github.com/django/django / save_deferred_fields

Method save_deferred_fields

django/core/serializers/base.py:303–328  ·  view source on GitHub ↗
(self, using=None)

Source from the content-addressed store, hash-verified

301 self.m2m_data = None
302
303 def save_deferred_fields(self, using=None):
304 self.m2m_data = {}
305 for field, field_value in self.deferred_fields.items():
306 opts = self.object._meta
307 label = opts.app_label + "." + opts.model_name
308 if isinstance(field.remote_field, models.ManyToManyRel):
309 try:
310 values = deserialize_m2m_values(
311 field, field_value, using, handle_forward_references=False
312 )
313 except M2MDeserializationError as e:
314 raise DeserializationError.WithData(
315 e.original_exc, label, self.object.pk, e.pk
316 )
317 self.m2m_data[field.name] = values
318 elif isinstance(field.remote_field, models.ManyToOneRel):
319 try:
320 value = deserialize_fk_value(
321 field, field_value, using, handle_forward_references=False
322 )
323 except Exception as e:
324 raise DeserializationError.WithData(
325 e, label, self.object.pk, field_value
326 )
327 setattr(self.object, field.attname, value)
328 self.save()
329
330
331def build_instance(Model, data, db):

Callers 5

loaddataMethod · 0.80
forward_ref_fk_testFunction · 0.80
forward_ref_m2m_testFunction · 0.80

Calls 5

saveMethod · 0.95
deserialize_m2m_valuesFunction · 0.85
deserialize_fk_valueFunction · 0.85
WithDataMethod · 0.80
itemsMethod · 0.45

Tested by 4

forward_ref_fk_testFunction · 0.64
forward_ref_m2m_testFunction · 0.64