mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Refactor 32264ac3 to re-separate bulk and single device creation. Fixes #15598.
This commit is contained in:
padthaitofuhot
committed by
Jeremy Stretch
parent
da13fa5569
commit
3b3511c43c
@ -996,17 +996,16 @@ class Device(
|
|||||||
bulk_create: If True, bulk_create() will be called to create all components in a single query
|
bulk_create: If True, bulk_create() will be called to create all components in a single query
|
||||||
(default). Otherwise, save() will be called on each instance individually.
|
(default). Otherwise, save() will be called on each instance individually.
|
||||||
"""
|
"""
|
||||||
components = [obj.instantiate(device=self) for obj in queryset]
|
|
||||||
if not components:
|
|
||||||
return
|
|
||||||
|
|
||||||
# Set default values for any applicable custom fields
|
|
||||||
model = queryset.model.component_model
|
model = queryset.model.component_model
|
||||||
if cf_defaults := CustomField.objects.get_defaults_for_model(model):
|
|
||||||
for component in components:
|
|
||||||
component.custom_field_data = cf_defaults
|
|
||||||
|
|
||||||
if bulk_create:
|
if bulk_create:
|
||||||
|
components = [obj.instantiate(device=self) for obj in queryset]
|
||||||
|
if not components:
|
||||||
|
return
|
||||||
|
# Set default values for any applicable custom fields
|
||||||
|
if cf_defaults := CustomField.objects.get_defaults_for_model(model):
|
||||||
|
for component in components:
|
||||||
|
component.custom_field_data = cf_defaults
|
||||||
model.objects.bulk_create(components)
|
model.objects.bulk_create(components)
|
||||||
# Manually send the post_save signal for each of the newly created components
|
# Manually send the post_save signal for each of the newly created components
|
||||||
for component in components:
|
for component in components:
|
||||||
@ -1019,7 +1018,11 @@ class Device(
|
|||||||
update_fields=None
|
update_fields=None
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
for component in components:
|
for obj in queryset:
|
||||||
|
component = obj.instantiate(device=self)
|
||||||
|
# Set default values for any applicable custom fields
|
||||||
|
if cf_defaults := CustomField.objects.get_defaults_for_model(model):
|
||||||
|
component.custom_field_data = cf_defaults
|
||||||
component.save()
|
component.save()
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
|
Reference in New Issue
Block a user