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
« 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
5from .users import GroupSerializer, UserSerializer
7__all__ = (
8 'OwnerGroupSerializer',
9 'OwnerSerializer',
10)
13class OwnerGroupSerializer(ValidatedModelSerializer):
14 # Related object counts
15 member_count = RelatedObjectCountField('members')
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')
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 )
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')