1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Cache custom fields on instance prior to calling create()/update()

This commit is contained in:
Jeremy Stretch
2020-08-17 12:22:37 -04:00
parent dd707c97af
commit bc04543b33
2 changed files with 9 additions and 5 deletions

View File

@ -175,14 +175,14 @@ class CustomFieldModelSerializer(ValidatedModelSerializer):
)
def create(self, validated_data):
custom_fields = validated_data.pop('custom_fields', None)
from django.db.models.query import QuerySet
with transaction.atomic():
instance = super().create(validated_data)
# Save custom fields
custom_fields = validated_data.get('custom_fields')
if custom_fields is not None:
self._save_custom_fields(instance, custom_fields)
instance.custom_fields = custom_fields
@ -191,10 +191,11 @@ class CustomFieldModelSerializer(ValidatedModelSerializer):
def update(self, instance, validated_data):
custom_fields = validated_data.pop('custom_fields', None)
with transaction.atomic():
custom_fields = validated_data.get('custom_fields')
instance._cf = custom_fields
instance = super().update(instance, validated_data)
# Save custom fields