From 08d06bd78131e65bf21ff9d613a891262391f5c2 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 1 Mar 2018 11:16:28 -0500 Subject: [PATCH] Fixes #1921: Ignore ManyToManyFields when validating a new object created via the API --- netbox/utilities/api.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/netbox/utilities/api.py b/netbox/utilities/api.py index 9dccdcc9d..8471d0e00 100644 --- a/netbox/utilities/api.py +++ b/netbox/utilities/api.py @@ -5,6 +5,7 @@ import pytz from django.conf import settings from django.contrib.contenttypes.models import ContentType +from django.db.models import ManyToManyField from django.http import Http404 from rest_framework import mixins from rest_framework.exceptions import APIException @@ -51,6 +52,11 @@ class ValidatedModelSerializer(ModelSerializer): # Run clean() on an instance of the model if self.instance is None: + model = self.Meta.model + # Ignore ManyToManyFields for new instances (a PK is needed for validation) + for field in model._meta.get_fields(): + if isinstance(field, ManyToManyField): + attrs.pop(field.name) instance = self.Meta.model(**attrs) else: instance = self.instance