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

1from rest_framework import serializers 

2 

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 

9 

10__all__ = ( 

11 'ObjectChangeSerializer', 

12) 

13 

14 

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 ) 

43 

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 ]