From 6f8d3f7a57b0334d02d2bbc85dded1708fedc427 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 22 Aug 2017 11:31:33 -0400 Subject: [PATCH] Fixes #1443: Fixed API validation error involving custom field data --- netbox/utilities/api.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/netbox/utilities/api.py b/netbox/utilities/api.py index 7a945c045..36728a660 100644 --- a/netbox/utilities/api.py +++ b/netbox/utilities/api.py @@ -85,7 +85,13 @@ class ValidatedModelSerializer(ModelSerializer): """ Extends the built-in ModelSerializer to enforce calling clean() on the associated model during validation. """ - def validate(self, attrs): + def validate(self, data): + + # Remove custom field data (if any) prior to model validation + attrs = data.copy() + attrs.pop('custom_fields', None) + + # Run clean() on an instance of the model if self.instance is None: instance = self.Meta.model(**attrs) else: @@ -93,7 +99,8 @@ class ValidatedModelSerializer(ModelSerializer): for k, v in attrs.items(): setattr(instance, k, v) instance.clean() - return attrs + + return data class ChoiceFieldSerializer(Field):