Files
centurion_erp/app/api/serializers/itam/device.py

77 lines
1.6 KiB
Python

from django.urls import reverse
from rest_framework import serializers
from config_management.models.groups import ConfigGroups
from itam.models.device import Device
class DeviceConfigGroupsSerializer(serializers.ModelSerializer):
url = serializers.HyperlinkedIdentityField(
view_name="v1:_api_config_group", format="html"
)
class Meta:
model = ConfigGroups
fields = [
'id',
'name',
'url',
]
read_only_fields = [
'id',
'name',
'url',
]
class DeviceSerializer(serializers.ModelSerializer):
url = serializers.HyperlinkedIdentityField(
view_name="v1:device-detail", format="html"
)
config = serializers.SerializerMethodField('get_device_config')
groups = DeviceConfigGroupsSerializer(source='configgroups_set', many=True, read_only=True)
def get_device_config(self, device):
request = self.context.get('request')
return request.build_absolute_uri(reverse('v1:_api_device_config', args=[device.slug]))
class Meta:
model = Device
fields = [
'id',
'is_global',
'name',
'config',
'serial_number',
'uuid',
'inventorydate',
'created',
'modified',
'groups',
'organization',
'url',
]
read_only_fields = [
'id',
'config',
'inventorydate',
'created',
'modified',
'groups',
'url',
]