9608 fix schema errors

This commit is contained in:
Arthur 2023-01-31 08:08:27 -08:00
parent d0d13e8f6c
commit b9b4739ce3
3 changed files with 16 additions and 20 deletions

View File

@ -1,8 +1,6 @@
import django_filters import django_filters
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from drf_spectacular.utils import extend_schema_field
from drf_spectacular.types import OpenApiTypes
from extras.filtersets import LocalConfigContextFilterSet from extras.filtersets import LocalConfigContextFilterSet
from ipam.models import ASN, L2VPN, IPAddress, VRF from ipam.models import ASN, L2VPN, IPAddress, VRF

View File

@ -1,14 +1,11 @@
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.db import models from django.db import models
from drf_spectacular.utils import extend_schema_field
from drf_spectacular.types import OpenApiTypes
from netaddr import AddrFormatError, IPNetwork from netaddr import AddrFormatError, IPNetwork
from . import lookups, validators from . import lookups, validators
from .formfields import IPNetworkFormField from .formfields import IPNetworkFormField
@extend_schema_field(OpenApiTypes.STR)
class BaseIPField(models.Field): class BaseIPField(models.Field):
def python_type(self): def python_type(self):
@ -70,7 +67,6 @@ IPNetworkField.register_lookup(lookups.NetFamily)
IPNetworkField.register_lookup(lookups.NetMaskLength) IPNetworkField.register_lookup(lookups.NetMaskLength)
@extend_schema_field(OpenApiTypes.STR)
class IPAddressField(BaseIPField): class IPAddressField(BaseIPField):
""" """
IP address (host address and mask) IP address (host address and mask)

View File

@ -4,6 +4,8 @@ from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.db.models import Q from django.db.models import Q
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from drf_spectacular.utils import extend_schema_field
from drf_spectacular.types import OpenApiTypes
from netaddr.core import AddrFormatError from netaddr.core import AddrFormatError
from dcim.models import Device, Interface, Region, Site, SiteGroup from dcim.models import Device, Interface, Region, Site, SiteGroup
@ -261,17 +263,17 @@ class PrefixFilterSet(NetBoxModelFilterSet, TenancyFilterSet):
to_field_name='rd', to_field_name='rd',
label=_('VRF (RD)'), label=_('VRF (RD)'),
) )
present_in_vrf_id = django_filters.ModelChoiceFilter( present_in_vrf_id = extend_schema_field(OpenApiTypes.STR)(django_filters.ModelChoiceFilter(
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
method='filter_present_in_vrf', method='filter_present_in_vrf',
label=_('VRF') label=_('VRF')
) ))
present_in_vrf = django_filters.ModelChoiceFilter( present_in_vrf = extend_schema_field(OpenApiTypes.STR)(django_filters.ModelChoiceFilter(
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
method='filter_present_in_vrf', method='filter_present_in_vrf',
to_field_name='rd', to_field_name='rd',
label=_('VRF (RD)'), label=_('VRF (RD)'),
) ))
region_id = TreeNodeMultipleChoiceFilter( region_id = TreeNodeMultipleChoiceFilter(
queryset=Region.objects.all(), queryset=Region.objects.all(),
field_name='site__region', field_name='site__region',
@ -489,17 +491,17 @@ class IPAddressFilterSet(NetBoxModelFilterSet, TenancyFilterSet):
to_field_name='rd', to_field_name='rd',
label=_('VRF (RD)'), label=_('VRF (RD)'),
) )
present_in_vrf_id = django_filters.ModelChoiceFilter( present_in_vrf_id = extend_schema_field(OpenApiTypes.STR)(django_filters.ModelChoiceFilter(
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
method='filter_present_in_vrf', method='filter_present_in_vrf',
label=_('VRF') label=_('VRF')
) ))
present_in_vrf = django_filters.ModelChoiceFilter( present_in_vrf = extend_schema_field(OpenApiTypes.STR)(django_filters.ModelChoiceFilter(
queryset=VRF.objects.all(), queryset=VRF.objects.all(),
method='filter_present_in_vrf', method='filter_present_in_vrf',
to_field_name='rd', to_field_name='rd',
label=_('VRF (RD)'), label=_('VRF (RD)'),
) ))
device = MultiValueCharFilter( device = MultiValueCharFilter(
method='filter_device', method='filter_device',
field_name='name', field_name='name',
@ -647,10 +649,10 @@ class FHRPGroupFilterSet(NetBoxModelFilterSet):
auth_type = django_filters.MultipleChoiceFilter( auth_type = django_filters.MultipleChoiceFilter(
choices=FHRPGroupAuthTypeChoices choices=FHRPGroupAuthTypeChoices
) )
related_ip = django_filters.ModelMultipleChoiceFilter( related_ip = extend_schema_field(OpenApiTypes.STR)(django_filters.ModelMultipleChoiceFilter(
queryset=IPAddress.objects.all(), queryset=IPAddress.objects.all(),
method='filter_related_ip' method='filter_related_ip'
) ))
class Meta: class Meta:
model = FHRPGroup model = FHRPGroup
@ -844,14 +846,14 @@ class VLANFilterSet(NetBoxModelFilterSet, TenancyFilterSet):
choices=VLANStatusChoices, choices=VLANStatusChoices,
null_value=None null_value=None
) )
available_on_device = django_filters.ModelChoiceFilter( available_on_device = extend_schema_field(OpenApiTypes.STR)(django_filters.ModelChoiceFilter(
queryset=Device.objects.all(), queryset=Device.objects.all(),
method='get_for_device' method='get_for_device'
) ))
available_on_virtualmachine = django_filters.ModelChoiceFilter( available_on_virtualmachine = extend_schema_field(OpenApiTypes.STR)(django_filters.ModelChoiceFilter(
queryset=VirtualMachine.objects.all(), queryset=VirtualMachine.objects.all(),
method='get_for_virtualmachine' method='get_for_virtualmachine'
) ))
l2vpn_id = django_filters.ModelMultipleChoiceFilter( l2vpn_id = django_filters.ModelMultipleChoiceFilter(
field_name='l2vpn_terminations__l2vpn', field_name='l2vpn_terminations__l2vpn',
queryset=L2VPN.objects.all(), queryset=L2VPN.objects.all(),