Coverage for users/api/serializers_/owners.py: 100%

19 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 18:35 +0000

1from netbox.api.fields import RelatedObjectCountField, SerializedPKRelatedField 

2from netbox.api.serializers import ValidatedModelSerializer 

3from users.models import Group, Owner, OwnerGroup, User 

4 

5from .users import GroupSerializer, UserSerializer 

6 

7__all__ = ( 

8 'OwnerGroupSerializer', 

9 'OwnerSerializer', 

10) 

11 

12 

13class OwnerGroupSerializer(ValidatedModelSerializer): 

14 # Related object counts 

15 member_count = RelatedObjectCountField('members') 

16 

17 class Meta: 

18 model = OwnerGroup 

19 fields = ('id', 'url', 'display_url', 'display', 'name', 'description', 'member_count') 

20 brief_fields = ('id', 'url', 'display', 'name', 'description') 

21 

22 

23class OwnerSerializer(ValidatedModelSerializer): 

24 group = OwnerGroupSerializer( 

25 nested=True, 

26 allow_null=True, 

27 ) 

28 user_groups = SerializedPKRelatedField( 

29 queryset=Group.objects.all(), 

30 serializer=GroupSerializer, 

31 nested=True, 

32 required=False, 

33 many=True 

34 ) 

35 users = SerializedPKRelatedField( 

36 queryset=User.objects.all(), 

37 serializer=UserSerializer, 

38 nested=True, 

39 required=False, 

40 many=True 

41 ) 

42 

43 class Meta: 

44 model = Owner 

45 fields = ('id', 'url', 'display_url', 'display', 'name', 'group', 'description', 'user_groups', 'users') 

46 brief_fields = ('id', 'url', 'display', 'name', 'description')