serializers.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from rest_framework import serializers
  2. from extras.api.serializers import CustomFieldValueSerializer
  3. from tenancy.models import Tenant, TenantGroup
  4. #
  5. # Tenant groups
  6. #
  7. class TenantGroupSerializer(serializers.ModelSerializer):
  8. class Meta:
  9. model = TenantGroup
  10. fields = ['id', 'name', 'slug']
  11. class NestedTenantGroupSerializer(serializers.ModelSerializer):
  12. url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenantgroup-detail')
  13. class Meta:
  14. model = TenantGroup
  15. fields = ['id', 'url', 'name', 'slug']
  16. #
  17. # Tenants
  18. #
  19. class TenantSerializer(serializers.ModelSerializer):
  20. group = NestedTenantGroupSerializer()
  21. custom_field_values = CustomFieldValueSerializer(many=True)
  22. class Meta:
  23. model = Tenant
  24. fields = ['id', 'name', 'slug', 'group', 'description', 'comments', 'custom_field_values']
  25. class NestedTenantSerializer(serializers.ModelSerializer):
  26. url = serializers.HyperlinkedIdentityField(view_name='tenancy-api:tenant-detail')
  27. class Meta:
  28. model = Tenant
  29. fields = ['id', 'url', 'name', 'slug']
  30. class WritableTenantSerializer(serializers.ModelSerializer):
  31. class Meta:
  32. model = Tenant
  33. fields = ['id', 'name', 'slug', 'group', 'description', 'comments']