From 094521c8d85aee65d2f622228afd25150085d87f Mon Sep 17 00:00:00 2001 From: Willem Van Onsem Date: Mon, 29 Jan 2024 12:54:42 +0100 Subject: [PATCH] refactor removing parameters from kwargs when creating a ListSerializer --- rest_framework/serializers.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 77c181b6c..a7ef309ea 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -76,6 +76,7 @@ LIST_SERIALIZER_KWARGS = ( 'instance', 'data', 'partial', 'context', 'allow_null', 'max_length', 'min_length' ) +LIST_SERIALIZER_KWARGS_REMOVE = ('allow_empty', 'min_length', 'max_length') ALL_FIELDS = '__all__' @@ -145,19 +146,15 @@ class BaseSerializer(Field): kwargs['child'] = cls() return CustomListSerializer(*args, **kwargs) """ - allow_empty = kwargs.pop('allow_empty', None) - max_length = kwargs.pop('max_length', None) - min_length = kwargs.pop('min_length', None) + list_kwargs = {} + for key in LIST_SERIALIZER_KWARGS_REMOVE: + value = kwargs.pop(key, None) + if value is not None: + list_kwargs[key] = value child_serializer = cls(*args, **kwargs) list_kwargs = { 'child': child_serializer, } - if allow_empty is not None: - list_kwargs['allow_empty'] = allow_empty - if max_length is not None: - list_kwargs['max_length'] = max_length - if min_length is not None: - list_kwargs['min_length'] = min_length list_kwargs.update({ key: value for key, value in kwargs.items() if key in LIST_SERIALIZER_KWARGS