Coverage for netbox/api/serializers/nested.py: 100%
14 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from extras.models import Tag
2from utilities.api import get_related_object_by_attrs
4from .base import BaseModelSerializer
6__all__ = (
7 'NestedTagSerializer',
8 'WritableNestedSerializer',
9)
12class WritableNestedSerializer(BaseModelSerializer):
13 """
14 Represents an object related through a ForeignKey field. On write, it accepts a primary key (PK) value or a
15 dictionary of attributes which can be used to uniquely identify the related object. This class should be
16 subclassed to return a full representation of the related object on read.
17 """
18 def to_internal_value(self, data):
19 queryset = self.Meta.model.objects.all()
20 request = self.context.get('request')
21 user = request.user if request else None
22 return get_related_object_by_attrs(queryset, data, user=user)
25# Declared here for use by PrimaryModelSerializer
26class NestedTagSerializer(WritableNestedSerializer):
28 class Meta:
29 model = Tag
30 fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'color']