exporttemplates.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from rest_framework import serializers
  2. from core.api.serializers_.data import DataFileSerializer, DataSourceSerializer
  3. from core.models import ContentType
  4. from extras.models import ExportTemplate
  5. from netbox.api.fields import ContentTypeField
  6. from netbox.api.serializers import ValidatedModelSerializer
  7. __all__ = (
  8. 'ExportTemplateSerializer',
  9. )
  10. class ExportTemplateSerializer(ValidatedModelSerializer):
  11. url = serializers.HyperlinkedIdentityField(view_name='extras-api:exporttemplate-detail')
  12. content_types = ContentTypeField(
  13. queryset=ContentType.objects.with_feature('export_templates'),
  14. many=True
  15. )
  16. data_source = DataSourceSerializer(
  17. nested=True,
  18. required=False
  19. )
  20. data_file = DataFileSerializer(
  21. nested=True,
  22. read_only=True
  23. )
  24. class Meta:
  25. model = ExportTemplate
  26. fields = [
  27. 'id', 'url', 'display', 'content_types', 'name', 'description', 'template_code', 'mime_type',
  28. 'file_extension', 'as_attachment', 'data_source', 'data_path', 'data_file', 'data_synced', 'created',
  29. 'last_updated',
  30. ]
  31. brief_fields = ('id', 'url', 'display', 'name', 'description')