diff --git a/netbox/tenancy/api/serializers_/contacts.py b/netbox/tenancy/api/serializers_/contacts.py index ff08f4e15..a5c4dd741 100644 --- a/netbox/tenancy/api/serializers_/contacts.py +++ b/netbox/tenancy/api/serializers_/contacts.py @@ -3,7 +3,7 @@ from drf_spectacular.types import OpenApiTypes from drf_spectacular.utils import extend_schema_field from rest_framework import serializers -from netbox.api.fields import ChoiceField, ContentTypeField +from netbox.api.fields import ChoiceField, ContentTypeField, SerializedPKRelatedField from netbox.api.serializers import NestedGroupModelSerializer, NetBoxModelSerializer from tenancy.choices import ContactPriorityChoices from tenancy.models import ContactAssignment, Contact, ContactGroup, ContactRole @@ -43,7 +43,12 @@ class ContactRoleSerializer(NetBoxModelSerializer): class ContactSerializer(NetBoxModelSerializer): - groups = ContactGroupSerializer(many=True, nested=True, required=False, allow_null=True, default=None) + groups = SerializedPKRelatedField( + queryset=ContactGroup.objects.all(), + serializer=ContactGroupSerializer, + required=False, + many=True + ) class Meta: model = Contact diff --git a/netbox/tenancy/tests/test_api.py b/netbox/tenancy/tests/test_api.py index 26132a752..04ac3078c 100644 --- a/netbox/tenancy/tests/test_api.py +++ b/netbox/tenancy/tests/test_api.py @@ -170,7 +170,7 @@ class ContactTest(APIViewTestCases.APIViewTestCase): model = Contact brief_fields = ['description', 'display', 'id', 'name', 'url'] bulk_update_data = { - 'groups': None, + 'groups': [], 'comments': 'New comments', } @@ -195,11 +195,9 @@ class ContactTest(APIViewTestCases.APIViewTestCase): cls.create_data = [ { 'name': 'Contact 4', - 'groups': [contact_groups[1].pk], }, { 'name': 'Contact 5', - 'groups': [contact_groups[1].pk], }, { 'name': 'Contact 6',