From 36d3c848034aa4166a6df9c9159e620ea04dde78 Mon Sep 17 00:00:00 2001 From: Arthur Date: Fri, 7 Apr 2023 10:54:36 -0700 Subject: [PATCH] 11432 DRY --- netbox/dcim/api/serializers.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/netbox/dcim/api/serializers.py b/netbox/dcim/api/serializers.py index 29b256475..8d85a8690 100644 --- a/netbox/dcim/api/serializers.py +++ b/netbox/dcim/api/serializers.py @@ -31,28 +31,25 @@ from wireless.models import WirelessLAN from .nested_serializers import * -class ReadonlyDeviceMixin: +class BaseReadonlyDeviceMixin: + field_name = 'device' def get_fields(self, *args, **kwargs): fields = super().get_fields(*args, **kwargs) # get_extra_kwargs doesn't work if field explicitly declared on serializer... if (self.instance): - fields['device'].read_only = True + fields[self.field_name].read_only = True return fields -class ReadonlyDeviceTypeMixin: +class ReadonlyDeviceMixin(BaseReadonlyDeviceMixin): + field_name = 'device' - def get_fields(self, *args, **kwargs): - fields = super().get_fields(*args, **kwargs) - # get_extra_kwargs doesn't work if field explicitly declared on serializer... - if (self.instance): - fields['device_type'].read_only = True - - return fields +class ReadonlyDeviceTypeMixin(BaseReadonlyDeviceMixin): + field_name = 'device_type' class CabledObjectSerializer(serializers.ModelSerializer):