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

Implemented static writable ModelSerializers for all models

This commit is contained in:
Jeremy Stretch
2017-01-31 15:35:09 -05:00
parent e1cd846c9a
commit bb1f97abc2
13 changed files with 251 additions and 140 deletions

View File

@@ -1,6 +1,6 @@
from rest_framework import serializers
from extras.api.serializers import CustomFieldSerializer
from extras.api.serializers import CustomFieldValueSerializer
from tenancy.models import Tenant, TenantGroup
@@ -15,7 +15,7 @@ class TenantGroupSerializer(serializers.ModelSerializer):
fields = ['id', 'name', 'slug']
class NestedTenantGroupSerializer(serializers.HyperlinkedModelSerializer):
class NestedTenantGroupSerializer(serializers.ModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenantgroup-detail')
class Meta:
@@ -27,17 +27,25 @@ class NestedTenantGroupSerializer(serializers.HyperlinkedModelSerializer):
# Tenants
#
class TenantSerializer(CustomFieldSerializer, serializers.ModelSerializer):
class TenantSerializer(serializers.ModelSerializer):
group = NestedTenantGroupSerializer()
custom_field_values = CustomFieldValueSerializer(many=True)
class Meta:
model = Tenant
fields = ['id', 'name', 'slug', 'group', 'description', 'comments', 'custom_fields']
fields = ['id', 'name', 'slug', 'group', 'description', 'comments', 'custom_field_values']
class NestedTenantSerializer(serializers.HyperlinkedModelSerializer):
class NestedTenantSerializer(serializers.ModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenant-detail')
class Meta:
model = Tenant
fields = ['id', 'url', 'name', 'slug']
class WritableTenantSerializer(serializers.ModelSerializer):
class Meta:
model = Tenant
fields = ['id', 'name', 'slug', 'group', 'description', 'comments']

View File

@@ -24,4 +24,5 @@ class TenantGroupViewSet(ModelViewSet):
class TenantViewSet(WritableSerializerMixin, CustomFieldModelViewSet):
queryset = Tenant.objects.select_related('group')
serializer_class = serializers.TenantSerializer
write_serializer_class = serializers.WritableTenantSerializer
filter_class = TenantFilter