Closes #2578: Reorganized nested serializers

This commit is contained in:
Jeremy Stretch
2018-11-12 11:36:44 -05:00
parent f72ea8ddc5
commit 9a4f3453fb
18 changed files with 788 additions and 801 deletions

View File

@@ -0,0 +1,29 @@
from rest_framework import serializers
from tenancy.models import Tenant, TenantGroup
from utilities.api import WritableNestedSerializer
__all__ = [
'NestedTenantGroupSerializer',
'NestedTenantSerializer',
]
#
# Tenants
#
class NestedTenantGroupSerializer(WritableNestedSerializer):
url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenantgroup-detail')
class Meta:
model = TenantGroup
fields = ['id', 'url', 'name', 'slug']
class NestedTenantSerializer(WritableNestedSerializer):
url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenant-detail')
class Meta:
model = Tenant
fields = ['id', 'url', 'name', 'slug']

View File

@@ -1,13 +1,13 @@
from rest_framework import serializers
from taggit_serializer.serializers import TaggitSerializer, TagListSerializerField
from extras.api.customfields import CustomFieldModelSerializer
from tenancy.models import Tenant, TenantGroup
from utilities.api import ValidatedModelSerializer, WritableNestedSerializer
from utilities.api import ValidatedModelSerializer
from .nested_serializers import *
#
# Tenant groups
# Tenants
#
class TenantGroupSerializer(ValidatedModelSerializer):
@@ -17,18 +17,6 @@ class TenantGroupSerializer(ValidatedModelSerializer):
fields = ['id', 'name', 'slug']
class NestedTenantGroupSerializer(WritableNestedSerializer):
url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenantgroup-detail')
class Meta:
model = TenantGroup
fields = ['id', 'url', 'name', 'slug']
#
# Tenants
#
class TenantSerializer(TaggitSerializer, CustomFieldModelSerializer):
group = NestedTenantGroupSerializer(required=False)
tags = TagListSerializerField(required=False)
@@ -39,11 +27,3 @@ class TenantSerializer(TaggitSerializer, CustomFieldModelSerializer):
'id', 'name', 'slug', 'group', 'description', 'comments', 'tags', 'custom_fields', 'created',
'last_updated',
]
class NestedTenantSerializer(WritableNestedSerializer):
url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenant-detail')
class Meta:
model = Tenant
fields = ['id', 'url', 'name', 'slug']