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

1from extras.models import Tag 

2from utilities.api import get_related_object_by_attrs 

3 

4from .base import BaseModelSerializer 

5 

6__all__ = ( 

7 'NestedTagSerializer', 

8 'WritableNestedSerializer', 

9) 

10 

11 

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) 

23 

24 

25# Declared here for use by PrimaryModelSerializer 

26class NestedTagSerializer(WritableNestedSerializer): 

27 

28 class Meta: 

29 model = Tag 

30 fields = ['id', 'url', 'display_url', 'display', 'name', 'slug', 'color']