class ObjectChangeSerializer(serializers.ModelSerializer): user = NestedUserSerializer(read_only=True) content_type = ContentTypeField(read_only=True) changed_object = serializers.SerializerMethodField(read_only=True) class Meta: model = ObjectChange fields = [ 'id', 'time', 'user', 'user_name', 'request_id', 'action', 'content_type', 'changed_object', 'object_data', ] def get_changed_object(self, obj): """ Serialize a nested representation of the changed object. """ if obj.changed_object is None: return None serializer = get_serializer_for_model(obj.changed_object, prefix='Nested') if serializer is None: return obj.object_repr context = {'request': self.context['request']} data = serializer(obj.changed_object, context=context).data return data
class RackReservationSerializer(ValidatedModelSerializer): rack = NestedRackSerializer() user = NestedUserSerializer() tenant = NestedTenantSerializer(required=False, allow_null=True) class Meta: model = RackReservation fields = ['id', 'rack', 'units', 'created', 'user', 'tenant', 'description']
class NestedJobResultSerializer(WritableNestedSerializer): url = serializers.HyperlinkedIdentityField( view_name="extras-api:jobresult-detail") user = NestedUserSerializer(read_only=True) class Meta: model = JobResult fields = ["url", "created", "completed", "user", "status"]
class NestedJobResultSerializer(serializers.ModelSerializer): url = serializers.HyperlinkedIdentityField( view_name='extras-api:jobresult-detail') status = ChoiceField(choices=choices.JobResultStatusChoices) user = NestedUserSerializer(read_only=True) class Meta: model = models.JobResult fields = ['url', 'created', 'completed', 'user', 'status']
class RackReservationSerializer(TaggedObjectSerializer, CustomFieldModelSerializer): url = serializers.HyperlinkedIdentityField(view_name='dcim-api:rackreservation-detail') rack = NestedRackSerializer() user = NestedUserSerializer() tenant = NestedTenantSerializer(required=False, allow_null=True) class Meta: model = RackReservation fields = ['id', 'url', 'rack', 'units', 'created', 'user', 'tenant', 'description', 'tags', 'custom_fields']
class JobResultSerializer(BaseModelSerializer): url = serializers.HyperlinkedIdentityField(view_name='extras-api:jobresult-detail') user = NestedUserSerializer( read_only=True ) status = ChoiceField(choices=JobResultStatusChoices, read_only=True) obj_type = ContentTypeField( read_only=True ) class Meta: model = JobResult fields = [ 'id', 'url', 'display', 'created', 'completed', 'name', 'obj_type', 'status', 'user', 'data', 'job_id', ]
class ObjectChangeSerializer(BaseModelSerializer): url = serializers.HyperlinkedIdentityField( view_name="utils-api:objectchange-detail") user = NestedUserSerializer(read_only=True) action = ChoiceField(choices=ObjectChangeAction.choices, read_only=True) changed_object_type = ContentTypeField(read_only=True) changed_object = serializers.SerializerMethodField(read_only=True) class Meta: model = ObjectChange fields = [ "id", "url", "display", "time", "user", "user_name", "request_id", "action", "changed_object_type", "changed_object_id", "changed_object", "prechange_data", "postchange_data", ] @extend_schema_field(serializers.DictField) def get_changed_object(self, o): """ Serialize a nested representation of the changed object. """ if o.changed_object is None: return None try: serializer = get_serializer_for_model(o.changed_object, prefix="Nested") except Exception: return o.object_repr context = {"request": self.context["request"]} data = serializer(o.changed_object, context=context).data return data
class ObjectChangeSerializer(BaseModelSerializer): url = serializers.HyperlinkedIdentityField( view_name='extras-api:objectchange-detail') user = NestedUserSerializer(read_only=True) action = ChoiceField(choices=ObjectChangeActionChoices, read_only=True) changed_object_type = ContentTypeField(read_only=True) changed_object = serializers.SerializerMethodField(read_only=True) class Meta: model = ObjectChange fields = [ 'id', 'url', 'display', 'time', 'user', 'user_name', 'request_id', 'action', 'changed_object_type', 'changed_object_id', 'changed_object', 'prechange_data', 'postchange_data', ] @swagger_serializer_method(serializer_or_field=serializers.DictField) def get_changed_object(self, obj): """ Serialize a nested representation of the changed object. """ if obj.changed_object is None: return None try: serializer = get_serializer_for_model(obj.changed_object, prefix='Nested') except SerializerNotFound: return obj.object_repr context = {'request': self.context['request']} data = serializer(obj.changed_object, context=context).data return data
class JobResultSerializer(serializers.ModelSerializer): url = serializers.HyperlinkedIdentityField(view_name="extras-api:jobresult-detail") user = NestedUserSerializer(read_only=True) obj_type = ContentTypeField(read_only=True) output = serializers.CharField(read_only=True) class Meta: model = JobResult fields = [ "id", "url", "created", "completed", "name", "obj_type", "status", "user", "data", "job_id", "output", ]
class ObjectChangeSerializer(serializers.ModelSerializer): user = NestedUserSerializer( read_only=True ) action = ChoiceField( choices=OBJECTCHANGE_ACTION_CHOICES, read_only=True ) changed_object_type = ContentTypeField( read_only=True ) changed_object = serializers.SerializerMethodField( read_only=True ) class Meta: model = ObjectChange fields = [ 'id', 'time', 'user', 'user_name', 'request_id', 'action', 'changed_object_type', 'changed_object', 'object_data', ] @swagger_serializer_method(serializer_or_field=serializers.DictField) def get_changed_object(self, obj): """ Serialize a nested representation of the changed object. """ if obj.changed_object is None: return None try: serializer = get_serializer_for_model(obj.changed_object, prefix='Nested') except SerializerNotFound: return obj.object_repr context = { 'request': self.context['request'] } data = serializer(obj.changed_object, context=context).data return data