mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Closes #9608: Move from drf-yasg to spectacular
Co-authored-by: arthanson <worldnomad@gmail.com> Co-authored-by: jeremystretch <jstretch@netboxlabs.com>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from drf_spectacular.utils import extend_schema_serializer
|
||||
from rest_framework import serializers
|
||||
|
||||
from netbox.api.serializers import WritableNestedSerializer
|
||||
@@ -17,6 +18,9 @@ __all__ = [
|
||||
# Tenants
|
||||
#
|
||||
|
||||
@extend_schema_serializer(
|
||||
exclude_fields=('tenant_count',),
|
||||
)
|
||||
class NestedTenantGroupSerializer(WritableNestedSerializer):
|
||||
url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenantgroup-detail')
|
||||
tenant_count = serializers.IntegerField(read_only=True)
|
||||
@@ -39,6 +43,9 @@ class NestedTenantSerializer(WritableNestedSerializer):
|
||||
# Contacts
|
||||
#
|
||||
|
||||
@extend_schema_serializer(
|
||||
exclude_fields=('contact_count',),
|
||||
)
|
||||
class NestedContactGroupSerializer(WritableNestedSerializer):
|
||||
url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:contactgroup-detail')
|
||||
contact_count = serializers.IntegerField(read_only=True)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from django.contrib.auth.models import ContentType
|
||||
from drf_yasg.utils import swagger_serializer_method
|
||||
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
|
||||
@@ -98,7 +99,7 @@ class ContactAssignmentSerializer(NetBoxModelSerializer):
|
||||
object = serializers.SerializerMethodField(read_only=True)
|
||||
contact = NestedContactSerializer()
|
||||
role = NestedContactRoleSerializer(required=False, allow_null=True)
|
||||
priority = ChoiceField(choices=ContactPriorityChoices, allow_blank=True, required=False, default='')
|
||||
priority = ChoiceField(choices=ContactPriorityChoices, allow_blank=True, required=False, default=lambda: '')
|
||||
|
||||
class Meta:
|
||||
model = ContactAssignment
|
||||
@@ -107,7 +108,7 @@ class ContactAssignmentSerializer(NetBoxModelSerializer):
|
||||
'last_updated',
|
||||
]
|
||||
|
||||
@swagger_serializer_method(serializer_or_field=serializers.JSONField)
|
||||
@extend_schema_field(OpenApiTypes.OBJECT)
|
||||
def get_object(self, instance):
|
||||
serializer = get_serializer_for_model(instance.content_type.model_class(), prefix=NESTED_SERIALIZER_PREFIX)
|
||||
context = {'request': self.context['request']}
|
||||
|
||||
Reference in New Issue
Block a user