Coverage for core/api/serializers_/change_logging.py: 100%
19 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 18:35 +0000
1from rest_framework import serializers
3from core.choices import *
4from core.models import ObjectChange
5from netbox.api.fields import ChoiceField, ContentTypeField
6from netbox.api.gfk_fields import GFKSerializerField
7from netbox.api.serializers import BaseModelSerializer
8from users.api.serializers_.users import UserSerializer
10__all__ = (
11 'ObjectChangeSerializer',
12)
15class ObjectChangeSerializer(BaseModelSerializer):
16 user = UserSerializer(
17 nested=True,
18 read_only=True
19 )
20 action = ChoiceField(
21 choices=ObjectChangeActionChoices,
22 read_only=True
23 )
24 changed_object_type = ContentTypeField(
25 read_only=True
26 )
27 changed_object = GFKSerializerField(
28 read_only=True
29 )
30 object_repr = serializers.CharField(
31 read_only=True
32 )
33 prechange_data = serializers.JSONField(
34 source='prechange_data_clean',
35 read_only=True,
36 allow_null=True
37 )
38 postchange_data = serializers.JSONField(
39 source='postchange_data_clean',
40 read_only=True,
41 allow_null=True
42 )
44 class Meta:
45 model = ObjectChange
46 fields = [
47 'id', 'url', 'display_url', 'display', 'time', 'user', 'user_name', 'request_id', 'action',
48 'changed_object_type', 'changed_object_id', 'changed_object', 'object_repr', 'message',
49 'prechange_data', 'postchange_data',
50 ]