nested_serializers.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. from rest_framework import serializers
  2. from circuits.models import Circuit, CircuitTermination, CircuitType, Provider
  3. from utilities.api import WritableNestedSerializer
  4. __all__ = [
  5. 'NestedCircuitSerializer',
  6. 'NestedCircuitTerminationSerializer',
  7. 'NestedCircuitTypeSerializer',
  8. 'NestedProviderSerializer',
  9. ]
  10. #
  11. # Providers
  12. #
  13. class NestedProviderSerializer(WritableNestedSerializer):
  14. url = serializers.HyperlinkedIdentityField(view_name='circuits-api:provider-detail')
  15. class Meta:
  16. model = Provider
  17. fields = ['id', 'url', 'name', 'slug']
  18. #
  19. # Circuits
  20. #
  21. class NestedCircuitTypeSerializer(WritableNestedSerializer):
  22. url = serializers.HyperlinkedIdentityField(view_name='circuits-api:circuittype-detail')
  23. class Meta:
  24. model = CircuitType
  25. fields = ['id', 'url', 'name', 'slug']
  26. class NestedCircuitSerializer(WritableNestedSerializer):
  27. url = serializers.HyperlinkedIdentityField(view_name='circuits-api:circuit-detail')
  28. class Meta:
  29. model = Circuit
  30. fields = ['id', 'url', 'cid']
  31. class NestedCircuitTerminationSerializer(WritableNestedSerializer):
  32. url = serializers.HyperlinkedIdentityField(view_name='circuits-api:circuittermination-detail')
  33. circuit = NestedCircuitSerializer()
  34. class Meta:
  35. model = CircuitTermination
  36. fields = ['id', 'url', 'circuit', 'term_side']