@@ -336,13 +336,15 @@ def wrapper_create_objects(
336
336
)
337
337
obj .save ()
338
338
new = True
339
+ except MultipleObjectsReturned :
340
+ msg = "{}.get_or_create in {} returned multiple objects for {}" .format (
341
+ instance_data .model_class ._meta .object_name , # pylint: disable=protected-access
342
+ instance_data .key ,
343
+ instance_data .fields ,
344
+ )
345
+ self .report .log (logging .ERROR , msg )
346
+ failed = failed + 1
339
347
340
- # obj, new = instance_data.model_class.filter_manager.by_target(
341
- # self.target
342
- # ).get_or_create(
343
- # **instance_data.fields,
344
- # defaults=instance_data.defaults,
345
- # )
346
348
else :
347
349
# no unique field requirements, just create new object
348
350
obj = instance_data .model_class (
@@ -355,15 +357,6 @@ def wrapper_create_objects(
355
357
instance_data .model_class ._meta .object_name , # pylint: disable=protected-access
356
358
obj ,
357
359
)
358
-
359
- except MultipleObjectsReturned :
360
- msg = "{}.get_or_create in {} returned multiple objects for {}" .format (
361
- instance_data .model_class ._meta .object_name , # pylint: disable=protected-access
362
- instance_data .key ,
363
- instance_data .fields ,
364
- )
365
- self .report .log (logging .ERROR , msg )
366
- failed = failed + 1
367
360
except IntegrityError :
368
361
msg = "{} object {} failed to save" .format (
369
362
instance_data .model_class ._meta .object_name , # pylint: disable=protected-access
@@ -414,15 +407,21 @@ def wrapper_create_objects(
414
407
# index data here probs
415
408
result [instance_data .versioned_key ] = m
416
409
417
- msg = "{} {} objects processed, {} created, {} fetched from database" .format (
418
- created + existing + failed ,
419
- next ( # pylint: disable=protected-access
420
- iter (result .values ())
421
- ).instance ._meta .model ._meta .object_name , # pylint: disable=protected-access
422
- created ,
423
- existing ,
424
- ) # pylint: disable=protected-access
425
- self .report .log (logging .INFO , msg )
410
+ result = {}
411
+ if result :
412
+ msg = "{} {} objects processed, {} created, {} fetched from database" .format (
413
+ created + existing + failed ,
414
+ next ( # pylint: disable=protected-access
415
+ iter (result .values ())
416
+ ).instance ._meta .model ._meta .object_name , # pylint: disable=protected-access
417
+ created ,
418
+ existing ,
419
+ ) # pylint: disable=protected-access
420
+ self .report .log (logging .INFO , msg )
421
+ else :
422
+ # cannot continue when one object type is missing, abort
423
+ msg = f"No objects returned by { func .__name__ } "
424
+ self .report .log (logging .ERROR , msg )
426
425
427
426
# refresh all objects to make sure they're up to date.
428
427
# this is specifically because of the superseded flag above -
0 commit comments