1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Extended API to include custom fields

This commit is contained in:
Jeremy Stretch
2016-08-22 13:20:30 -04:00
parent b14afaa687
commit 76f0463290
14 changed files with 139 additions and 74 deletions

View File

@@ -1,5 +1,6 @@
from rest_framework import serializers
from extras.api.serializers import CustomFieldsSerializer
from tenancy.models import Tenant, TenantGroup
@@ -24,12 +25,12 @@ class TenantGroupNestedSerializer(TenantGroupSerializer):
# Tenants
#
class TenantSerializer(serializers.ModelSerializer):
class TenantSerializer(CustomFieldsSerializer, serializers.ModelSerializer):
group = TenantGroupNestedSerializer()
class Meta:
model = Tenant
fields = ['id', 'name', 'slug', 'group', 'comments']
fields = ['id', 'name', 'slug', 'group', 'comments', 'custom_fields']
class TenantNestedSerializer(TenantSerializer):

View File

@@ -3,6 +3,7 @@ from rest_framework import generics
from tenancy.models import Tenant, TenantGroup
from tenancy.filters import TenantFilter
from extras.api.views import CustomFieldModelAPIView
from . import serializers
@@ -22,18 +23,18 @@ class TenantGroupDetailView(generics.RetrieveAPIView):
serializer_class = serializers.TenantGroupSerializer
class TenantListView(generics.ListAPIView):
class TenantListView(CustomFieldModelAPIView, generics.ListAPIView):
"""
List tenants (filterable)
"""
queryset = Tenant.objects.select_related('group')
queryset = Tenant.objects.select_related('group').prefetch_related('custom_field_values')
serializer_class = serializers.TenantSerializer
filter_class = TenantFilter
class TenantDetailView(generics.RetrieveAPIView):
class TenantDetailView(CustomFieldModelAPIView, generics.RetrieveAPIView):
"""
Retrieve a single tenant
"""
queryset = Tenant.objects.select_related('group')
queryset = Tenant.objects.select_related('group').prefetch_related('custom_field_values')
serializer_class = serializers.TenantSerializer