nested_serializers.py 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. from rest_framework import serializers
  2. from extras import models
  3. from netbox.api.serializers import NestedTagSerializer, WritableNestedSerializer
  4. __all__ = [
  5. 'NestedConfigContextSerializer',
  6. 'NestedConfigTemplateSerializer',
  7. 'NestedCustomFieldSerializer',
  8. 'NestedCustomLinkSerializer',
  9. 'NestedExportTemplateSerializer',
  10. 'NestedImageAttachmentSerializer',
  11. 'NestedJournalEntrySerializer',
  12. 'NestedSavedFilterSerializer',
  13. 'NestedTagSerializer', # Defined in netbox.api.serializers
  14. 'NestedWebhookSerializer',
  15. ]
  16. class NestedWebhookSerializer(WritableNestedSerializer):
  17. url = serializers.HyperlinkedIdentityField(view_name='extras-api:webhook-detail')
  18. class Meta:
  19. model = models.Webhook
  20. fields = ['id', 'url', 'display', 'name']
  21. class NestedCustomFieldSerializer(WritableNestedSerializer):
  22. url = serializers.HyperlinkedIdentityField(view_name='extras-api:customfield-detail')
  23. class Meta:
  24. model = models.CustomField
  25. fields = ['id', 'url', 'display', 'name']
  26. class NestedCustomLinkSerializer(WritableNestedSerializer):
  27. url = serializers.HyperlinkedIdentityField(view_name='extras-api:customlink-detail')
  28. class Meta:
  29. model = models.CustomLink
  30. fields = ['id', 'url', 'display', 'name']
  31. class NestedConfigContextSerializer(WritableNestedSerializer):
  32. url = serializers.HyperlinkedIdentityField(view_name='extras-api:configcontext-detail')
  33. class Meta:
  34. model = models.ConfigContext
  35. fields = ['id', 'url', 'display', 'name']
  36. class NestedConfigTemplateSerializer(WritableNestedSerializer):
  37. url = serializers.HyperlinkedIdentityField(view_name='extras-api:configtemplate-detail')
  38. class Meta:
  39. model = models.ConfigTemplate
  40. fields = ['id', 'url', 'display', 'name']
  41. class NestedExportTemplateSerializer(WritableNestedSerializer):
  42. url = serializers.HyperlinkedIdentityField(view_name='extras-api:exporttemplate-detail')
  43. class Meta:
  44. model = models.ExportTemplate
  45. fields = ['id', 'url', 'display', 'name']
  46. class NestedSavedFilterSerializer(WritableNestedSerializer):
  47. url = serializers.HyperlinkedIdentityField(view_name='extras-api:savedfilter-detail')
  48. class Meta:
  49. model = models.SavedFilter
  50. fields = ['id', 'url', 'display', 'name', 'slug']
  51. class NestedImageAttachmentSerializer(WritableNestedSerializer):
  52. url = serializers.HyperlinkedIdentityField(view_name='extras-api:imageattachment-detail')
  53. class Meta:
  54. model = models.ImageAttachment
  55. fields = ['id', 'url', 'display', 'name', 'image']
  56. class NestedJournalEntrySerializer(WritableNestedSerializer):
  57. url = serializers.HyperlinkedIdentityField(view_name='extras-api:journalentry-detail')
  58. class Meta:
  59. model = models.JournalEntry
  60. fields = ['id', 'url', 'display', 'created']